当前位置: 首页>>代码示例>>C++>>正文


C++ path_cat函数代码示例

本文整理汇总了C++中path_cat函数的典型用法代码示例。如果您正苦于以下问题:C++ path_cat函数的具体用法?C++ path_cat怎么用?C++ path_cat使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了path_cat函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: print_rename

static int print_rename(const char *from, const char *to, void *user)
{
	struct recv_args *r = user;
	char *full_from = path_cat(r->full_subvol_path, from);
	char *full_to = path_cat(r->full_subvol_path, to);

	printf("rename\t%s\t%s\n", from, to);

	free(full_from);
	free(full_to);
	return 0;
}
开发者ID:AK47POMA,项目名称:btrfs-progs,代码行数:12,代码来源:send-test.c

示例2: process_utimes

static int process_utimes(const char *path, struct timespec *at,
			  struct timespec *mt, struct timespec *ct,
			  void *user)
{
	int ret = 0;
	struct btrfs_receive *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);
	struct timespec tv[2];

	if (g_verbose >= 2)
		fprintf(stderr, "utimes %s\n", path);

	tv[0] = *at;
	tv[1] = *mt;
	ret = utimensat(AT_FDCWD, full_path, tv, AT_SYMLINK_NOFOLLOW);
	if (ret < 0) {
		ret = -errno;
		fprintf(stderr, "ERROR: utimes %s failed. %s\n",
				path, strerror(-ret));
		goto out;
	}

out:
	free(full_path);
	return ret;
}
开发者ID:chrestomanci,项目名称:btrfs-progs,代码行数:26,代码来源:cmds-receive.c

示例3: try_path

// Check whether the directory specified by catting the given base and path
// exists
// @return The resulting directory path, which should not be deleted and is
// valid indefinitely. NULL is directory cannot be found.
static const char* try_path(const char* base, const char* path,
  bool* out_found_notdir)
{
  char composite[FILENAME_MAX];
  char file[FILENAME_MAX];

  path_cat(base, path, composite);

  if(pony_realpath(composite, file) != file)
    return NULL;

  struct stat s;
  int err = stat(file, &s);

  if(err == -1)
    return NULL;

  if(!S_ISDIR(s.st_mode))
  {
    if(out_found_notdir != NULL)
      *out_found_notdir = true;

    return NULL;
  }

  return stringtab(file);
}
开发者ID:dipinhora,项目名称:ponyc,代码行数:31,代码来源:package.c

示例4: process_write

static int process_write(const char *path, const void *data, u64 offset,
			 u64 len, void *user)
{
	int ret = 0;
	struct btrfs_receive *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);
	u64 pos = 0;
	int w;

	ret = open_inode_for_write(r, full_path);
	if (ret < 0)
		goto out;

	while (pos < len) {
		w = pwrite(r->write_fd, (char*)data + pos, len - pos,
				offset + pos);
		if (w < 0) {
			ret = -errno;
			fprintf(stderr, "ERROR: writing to %s failed. %s\n",
					path, strerror(-ret));
			goto out;
		}
		pos += w;
	}

out:
	free(full_path);
	return ret;
}
开发者ID:chrestomanci,项目名称:btrfs-progs,代码行数:29,代码来源:cmds-receive.c

示例5: process_set_xattr

static int process_set_xattr(const char *path, const char *name,
			     const void *data, int len, void *user)
{
	int ret = 0;
	struct btrfs_receive *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);

	if (g_verbose >= 2) {
		fprintf(stderr, "set_xattr %s - name=%s data_len=%d "
				"data=%.*s\n", path, name, len,
				len, (char*)data);
	}

	ret = lsetxattr(full_path, name, data, len, 0);
	if (ret < 0) {
		ret = -errno;
		fprintf(stderr, "ERROR: lsetxattr %s %s=%.*s failed. %s\n",
				path, name, len, (char*)data, strerror(-ret));
		goto out;
	}

out:
	free(full_path);
	return ret;
}
开发者ID:chrestomanci,项目名称:btrfs-progs,代码行数:25,代码来源:cmds-receive.c

示例6: print_truncate

static int print_truncate(const char *path, u64 size, void *user)
{
	struct recv_args *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);

	printf("truncate\t%llu\t%s\n", (unsigned long long)size, full_path);

	free(full_path);
	return 0;
}
开发者ID:AK47POMA,项目名称:btrfs-progs,代码行数:10,代码来源:send-test.c

示例7: print_link

static int print_link(const char *path, const char *lnk, void *user)
{
	struct recv_args *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);

	printf("link\t%s\t%s\n", lnk, full_path);

	free(full_path);
	return 0;
}
开发者ID:AK47POMA,项目名称:btrfs-progs,代码行数:10,代码来源:send-test.c

示例8: print_chmod

static int print_chmod(const char *path, u64 mode, void *user)
{
	struct recv_args *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);

	printf("chmod\t%llo\t%s\n", (unsigned long long)mode, full_path);

	free(full_path);
	return 0;
}
开发者ID:AK47POMA,项目名称:btrfs-progs,代码行数:10,代码来源:send-test.c

示例9: path_parse

/**
 * Gets absolute path by relative path
 *  @param relative Relative or absolute path
 *  @return Absolute path (Can be passed to free())
 */
static char *getabsolutepath(const char *relative) {
  path_t *path = path_parse(relative);
  if (!path->root) {
    path_t *newpath = path_cat(workdir.path,path);
    path_destroy(path);
    path = newpath;
  }
  path_reject_dots(path);
  return path_output(path,NULL);
}
开发者ID:jgraef,项目名称:meinOS,代码行数:15,代码来源:files.c

示例10: print_remove_xattr

static int print_remove_xattr(const char *path, const char *name, void *user)
{
	struct recv_args *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);

	printf("remove_xattr\t%s\t%s\n", full_path, name);

	free(full_path);
	return 0;
}
开发者ID:AK47POMA,项目名称:btrfs-progs,代码行数:10,代码来源:send-test.c

示例11: print_rmdir

static int print_rmdir(const char *path, void *user)
{
	struct recv_args *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);

	printf("rmdir\t%s\n", full_path);

	free(full_path);
	return 0;
}
开发者ID:AK47POMA,项目名称:btrfs-progs,代码行数:10,代码来源:send-test.c

示例12: print_update_extent

static int print_update_extent(const char *path, u64 offset, u64 len,
			       void *user)
{
	struct recv_args *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);

	printf("update_extent\t%s\t%llu\t%llu\n", full_path, offset, len);

	free(full_path);
	return 0;
}
开发者ID:AK47POMA,项目名称:btrfs-progs,代码行数:11,代码来源:send-test.c

示例13: print_chown

static int print_chown(const char *path, u64 uid, u64 gid, void *user)
{
	struct recv_args *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);

	printf("chown\t%llu\t%llu\t%s\n", (unsigned long long)uid,
	       (unsigned long long)gid, full_path);

	free(full_path);
	return 0;
}
开发者ID:AK47POMA,项目名称:btrfs-progs,代码行数:11,代码来源:send-test.c

示例14: try_path

// Check whether the directory specified by catting the given base and path
// exists
// @return The resulting directory path, which should not be deleted and is
// valid indefinitely. NULL is directory cannot be found.
static const char* try_path(const char* base, const char* path)
{
  char composite[FILENAME_MAX];
  char file[FILENAME_MAX];

  path_cat(base, path, composite);

  if(pony_realpath(composite, file) != file)
    return NULL;

  return stringtab(file);
}
开发者ID:lzpfmh,项目名称:ponyc,代码行数:16,代码来源:package.c

示例15: process_link

static int process_link(const char *path, const char *lnk, void *user)
{
	int ret;
	struct btrfs_receive *r = user;
	char *full_path = path_cat(r->full_subvol_path, path);
	char *full_link_path = path_cat(r->full_subvol_path, lnk);

	if (g_verbose >= 2)
		fprintf(stderr, "link %s -> %s\n", path, lnk);

	ret = link(full_link_path, full_path);
	if (ret < 0) {
		ret = -errno;
		fprintf(stderr, "ERROR: link %s -> %s failed. %s\n", path,
				lnk, strerror(-ret));
	}

	free(full_path);
	free(full_link_path);
	return ret;
}
开发者ID:chrestomanci,项目名称:btrfs-progs,代码行数:21,代码来源:cmds-receive.c


注:本文中的path_cat函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。