本文整理汇总了C++中close_file_or_dir函数的典型用法代码示例。如果您正苦于以下问题:C++ close_file_or_dir函数的具体用法?C++ close_file_or_dir怎么用?C++ close_file_or_dir使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了close_file_or_dir函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: quota_ctl
static int quota_ctl(int cmd, int argc, char **argv)
{
int ret = 0;
int fd;
int e;
char *path = argv[1];
struct btrfs_ioctl_quota_ctl_args args;
DIR *dirstream = NULL;
if (check_argc_exact(argc, 2))
return -1;
memset(&args, 0, sizeof(args));
args.cmd = cmd;
fd = open_file_or_dir(path, &dirstream);
if (fd < 0) {
fprintf(stderr, "ERROR: can't access '%s'\n", path);
return 1;
}
ret = ioctl(fd, BTRFS_IOC_QUOTA_CTL, &args);
e = errno;
close_file_or_dir(fd, dirstream);
if (ret < 0) {
fprintf(stderr, "ERROR: quota command failed: %s\n",
strerror(e));
return 1;
}
return 0;
}
开发者ID:osandov,项目名称:btrfs-progs,代码行数:31,代码来源:cmds-quota.c
示例2: cmd_device_usage
static int cmd_device_usage(int argc, char **argv)
{
unsigned unit_mode;
int ret = 0;
int i;
unit_mode = get_unit_mode_from_arg(&argc, argv, 1);
clean_args_no_options(argc, argv, cmd_device_usage_usage);
if (check_argc_min(argc - optind, 1))
usage(cmd_device_usage_usage);
for (i = optind; i < argc; i++) {
int fd;
DIR *dirstream = NULL;
if (i > 1)
printf("\n");
fd = btrfs_open_dir(argv[i], &dirstream, 1);
if (fd < 0) {
ret = 1;
break;
}
ret = _cmd_device_usage(fd, argv[i], unit_mode);
close_file_or_dir(fd, dirstream);
if (ret)
break;
}
return !!ret;
}
开发者ID:hhoffstaette,项目名称:btrfs-progs,代码行数:35,代码来源:cmds-device.c
示例3: cmd_balance_pause
static int cmd_balance_pause(int argc, char **argv)
{
const char *path;
int fd;
int ret;
DIR *dirstream = NULL;
clean_args_no_options(argc, argv, cmd_balance_pause_usage);
if (check_argc_exact(argc - optind, 1))
return 1;
path = argv[optind];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
return 1;
ret = ioctl(fd, BTRFS_IOC_BALANCE_CTL, BTRFS_BALANCE_CTL_PAUSE);
if (ret < 0) {
error("balance pause on '%s' failed: %s", path,
(errno == ENOTCONN) ? "Not running" : strerror(errno));
if (errno == ENOTCONN)
ret = 2;
else
ret = 1;
}
close_file_or_dir(fd, dirstream);
return ret;
}
开发者ID:kdave,项目名称:btrfs-progs,代码行数:31,代码来源:cmds-balance.c
示例4: cmd_inspect_subvolid_resolve
static int cmd_inspect_subvolid_resolve(int argc, char **argv)
{
int ret;
int fd = -1;
u64 subvol_id;
char path[PATH_MAX];
DIR *dirstream = NULL;
clean_args_no_options(argc, argv, cmd_inspect_subvolid_resolve_usage);
if (check_argc_exact(argc - optind, 2))
usage(cmd_inspect_subvolid_resolve_usage);
fd = btrfs_open_dir(argv[optind + 1], &dirstream, 1);
if (fd < 0) {
ret = -ENOENT;
goto out;
}
subvol_id = arg_strtou64(argv[optind]);
ret = btrfs_subvolid_resolve(fd, path, sizeof(path), subvol_id);
if (ret) {
error("resolving subvolid %llu error %d",
(unsigned long long)subvol_id, ret);
goto out;
}
path[PATH_MAX - 1] = '\0';
printf("%s\n", path);
out:
close_file_or_dir(fd, dirstream);
return ret ? 1 : 0;
}
开发者ID:devimc,项目名称:btrfs-progs,代码行数:35,代码来源:cmds-inspect.c
示例5: cmd_balance_cancel
static int cmd_balance_cancel(int argc, char **argv)
{
const char *path;
int fd;
int ret;
int e;
DIR *dirstream = NULL;
clean_args_no_options(argc, argv, cmd_balance_cancel_usage);
if (check_argc_exact(argc - optind, 1))
usage(cmd_balance_cancel_usage);
path = argv[optind];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
return 1;
ret = ioctl(fd, BTRFS_IOC_BALANCE_CTL, BTRFS_BALANCE_CTL_CANCEL);
e = errno;
close_file_or_dir(fd, dirstream);
if (ret < 0) {
error("balance cancel on '%s' failed: %s", path,
(e == ENOTCONN) ? "Not in progress" : strerror(e));
if (e == ENOTCONN)
return 2;
else
return 1;
}
return 0;
}
开发者ID:devimc,项目名称:btrfs-progs,代码行数:34,代码来源:cmds-balance.c
示例6: qgroup_create
static int qgroup_create(int create, int argc, char **argv)
{
int ret = 0;
int fd;
int e;
char *path = argv[2];
struct btrfs_ioctl_qgroup_create_args args;
DIR *dirstream = NULL;
if (check_argc_exact(argc, 3))
return -1;
memset(&args, 0, sizeof(args));
args.create = create;
args.qgroupid = parse_qgroupid(argv[1]);
fd = open_file_or_dir(path, &dirstream);
if (fd < 0) {
fprintf(stderr, "ERROR: can't access '%s'\n", path);
return 1;
}
ret = ioctl(fd, BTRFS_IOC_QGROUP_CREATE, &args);
e = errno;
close_file_or_dir(fd, dirstream);
if (ret < 0) {
fprintf(stderr, "ERROR: unable to %s quota group: %s\n",
create ? "create":"destroy", strerror(e));
return 1;
}
return 0;
}
开发者ID:chrestomanci,项目名称:btrfs-progs,代码行数:32,代码来源:cmds-qgroup.c
示例7: _cmd_qgroup_create
static int _cmd_qgroup_create(int create, int argc, char **argv)
{
int ret = 0;
int fd;
int e;
char *path;
struct btrfs_ioctl_qgroup_create_args args;
DIR *dirstream = NULL;
if (check_argc_exact(argc - optind, 2))
return -1;
memset(&args, 0, sizeof(args));
args.create = create;
args.qgroupid = parse_qgroupid(argv[optind]);
path = argv[optind + 1];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
return 1;
ret = ioctl(fd, BTRFS_IOC_QGROUP_CREATE, &args);
e = errno;
close_file_or_dir(fd, dirstream);
if (ret < 0) {
error("unable to %s quota group: %s",
create ? "create":"destroy", strerror(e));
return 1;
}
return 0;
}
开发者ID:KuronekoDungeon,项目名称:android_external_btrfsprogs,代码行数:31,代码来源:cmds-qgroup.c
示例8: cmd_inspect_rootid
static int cmd_inspect_rootid(int argc, char **argv)
{
int ret;
int fd = -1;
u64 rootid;
DIR *dirstream = NULL;
clean_args_no_options(argc, argv, cmd_inspect_rootid_usage);
if (check_argc_exact(argc - optind, 1))
usage(cmd_inspect_rootid_usage);
fd = btrfs_open_dir(argv[optind], &dirstream, 1);
if (fd < 0) {
ret = -ENOENT;
goto out;
}
ret = lookup_ino_rootid(fd, &rootid);
if (ret) {
error("rootid failed with ret=%d", ret);
goto out;
}
printf("%llu\n", (unsigned long long)rootid);
out:
close_file_or_dir(fd, dirstream);
return !!ret;
}
开发者ID:devimc,项目名称:btrfs-progs,代码行数:30,代码来源:cmds-inspect.c
示例9: cmd_subvol_set_default
static int cmd_subvol_set_default(int argc, char **argv)
{
int ret=0, fd, e;
u64 objectid;
char *path;
char *subvolid;
DIR *dirstream = NULL;
if (check_argc_exact(argc, 3))
usage(cmd_subvol_set_default_usage);
subvolid = argv[1];
path = argv[2];
objectid = arg_strtou64(subvolid);
fd = open_file_or_dir(path, &dirstream);
if (fd < 0) {
fprintf(stderr, "ERROR: can't access '%s'\n", path);
return 1;
}
ret = ioctl(fd, BTRFS_IOC_DEFAULT_SUBVOL, &objectid);
e = errno;
close_file_or_dir(fd, dirstream);
if (ret < 0) {
fprintf(stderr, "ERROR: unable to set a new default subvolume - %s\n",
strerror(e));
return 1;
}
return 0;
}
开发者ID:osandov,项目名称:btrfs-progs,代码行数:32,代码来源:cmds-subvolume.c
示例10: cmd_inspect_inode_resolve
static int cmd_inspect_inode_resolve(int argc, char **argv)
{
int fd;
int verbose = 0;
int ret;
DIR *dirstream = NULL;
optind = 1;
while (1) {
int c = getopt(argc, argv, "v");
if (c < 0)
break;
switch (c) {
case 'v':
verbose = 1;
break;
default:
usage(cmd_inspect_inode_resolve_usage);
}
}
if (check_argc_exact(argc - optind, 2))
usage(cmd_inspect_inode_resolve_usage);
fd = btrfs_open_dir(argv[optind + 1], &dirstream, 1);
if (fd < 0)
return 1;
ret = __ino_to_path_fd(arg_strtou64(argv[optind]), fd, verbose,
argv[optind+1]);
close_file_or_dir(fd, dirstream);
return !!ret;
}
开发者ID:devimc,项目名称:btrfs-progs,代码行数:35,代码来源:cmds-inspect.c
示例11: cmd_subvol_set_default
static int cmd_subvol_set_default(int argc, char **argv)
{
int ret=0, fd, e;
u64 objectid;
char *path;
char *subvolid;
DIR *dirstream = NULL;
clean_args_no_options(argc, argv, cmd_subvol_set_default_usage);
if (check_argc_exact(argc - optind, 2))
usage(cmd_subvol_set_default_usage);
subvolid = argv[optind];
path = argv[optind + 1];
objectid = arg_strtou64(subvolid);
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
return 1;
ret = ioctl(fd, BTRFS_IOC_DEFAULT_SUBVOL, &objectid);
e = errno;
close_file_or_dir(fd, dirstream);
if (ret < 0) {
error("unable to set a new default subvolume: %s",
strerror(e));
return 1;
}
return 0;
}
开发者ID:goldwynr,项目名称:btrfs-progs,代码行数:32,代码来源:cmds-subvolume.c
示例12: cmd_balance_cancel
static int cmd_balance_cancel(int argc, char **argv)
{
const char *path;
int fd;
int ret;
int e;
DIR *dirstream = NULL;
if (check_argc_exact(argc, 2))
usage(cmd_balance_cancel_usage);
path = argv[1];
fd = open_file_or_dir(path, &dirstream);
if (fd < 0) {
fprintf(stderr, "ERROR: can't access '%s'\n", path);
return 1;
}
ret = ioctl(fd, BTRFS_IOC_BALANCE_CTL, BTRFS_BALANCE_CTL_CANCEL);
e = errno;
close_file_or_dir(fd, dirstream);
if (ret < 0) {
fprintf(stderr, "ERROR: balance cancel on '%s' failed - %s\n",
path, (e == ENOTCONN) ? "Not in progress" : strerror(e));
if (e == ENOTCONN)
return 2;
else
return 1;
}
return 0;
}
开发者ID:B-Rich,项目名称:btrfs-progs,代码行数:34,代码来源:cmds-balance.c
示例13: cmd_subvol_get_default
static int cmd_subvol_get_default(int argc, char **argv)
{
int fd = -1;
int ret;
char *subvol;
struct btrfs_list_filter_set *filter_set;
u64 default_id;
DIR *dirstream = NULL;
clean_args_no_options(argc, argv, cmd_subvol_get_default_usage);
if (check_argc_exact(argc - optind, 1))
usage(cmd_subvol_get_default_usage);
subvol = argv[1];
fd = btrfs_open_dir(subvol, &dirstream, 1);
if (fd < 0)
return 1;
ret = btrfs_list_get_default_subvolume(fd, &default_id);
if (ret) {
error("failed to look up default subvolume: %s",
strerror(errno));
goto out;
}
ret = 1;
if (default_id == 0) {
error("'default' dir item not found");
goto out;
}
/* no need to resolve roots if FS_TREE is default */
if (default_id == BTRFS_FS_TREE_OBJECTID) {
printf("ID 5 (FS_TREE)\n");
ret = 0;
goto out;
}
filter_set = btrfs_list_alloc_filter_set();
btrfs_list_setup_filter(&filter_set, BTRFS_LIST_FILTER_ROOTID,
default_id);
/* by default we shall print the following columns*/
btrfs_list_setup_print_column(BTRFS_LIST_OBJECTID);
btrfs_list_setup_print_column(BTRFS_LIST_GENERATION);
btrfs_list_setup_print_column(BTRFS_LIST_TOP_LEVEL);
btrfs_list_setup_print_column(BTRFS_LIST_PATH);
ret = btrfs_list_subvols_print(fd, filter_set, NULL,
BTRFS_LIST_LAYOUT_DEFAULT, 1, NULL);
if (filter_set)
free(filter_set);
out:
close_file_or_dir(fd, dirstream);
return !!ret;
}
开发者ID:goldwynr,项目名称:btrfs-progs,代码行数:58,代码来源:cmds-subvolume.c
示例14: cmd_subvol_get_default
static int cmd_subvol_get_default(int argc, char **argv)
{
int fd = -1;
int ret;
char *subvol;
struct btrfs_list_filter_set *filter_set;
u64 default_id;
DIR *dirstream = NULL;
if (check_argc_exact(argc, 2))
usage(cmd_subvol_get_default_usage);
subvol = argv[1];
fd = open_file_or_dir(subvol, &dirstream);
if (fd < 0) {
fprintf(stderr, "ERROR: can't access '%s'\n", subvol);
return 1;
}
ret = btrfs_list_get_default_subvolume(fd, &default_id);
if (ret) {
fprintf(stderr, "ERROR: can't perform the search - %s\n",
strerror(errno));
goto out;
}
ret = 1;
if (default_id == 0) {
fprintf(stderr, "ERROR: 'default' dir item not found\n");
goto out;
}
/* no need to resolve roots if FS_TREE is default */
if (default_id == BTRFS_FS_TREE_OBJECTID) {
printf("ID 5 (FS_TREE)\n");
ret = 0;
goto out;
}
filter_set = btrfs_list_alloc_filter_set();
btrfs_list_setup_filter(&filter_set, BTRFS_LIST_FILTER_ROOTID,
default_id);
/* by default we shall print the following columns*/
btrfs_list_setup_print_column(BTRFS_LIST_OBJECTID);
btrfs_list_setup_print_column(BTRFS_LIST_GENERATION);
btrfs_list_setup_print_column(BTRFS_LIST_TOP_LEVEL);
btrfs_list_setup_print_column(BTRFS_LIST_PATH);
ret = btrfs_list_subvols_print(fd, filter_set, NULL,
BTRFS_LIST_LAYOUT_DEFAULT, 1, NULL);
if (filter_set)
btrfs_list_free_filter_set(filter_set);
out:
close_file_or_dir(fd, dirstream);
return !!ret;
}
开发者ID:osandov,项目名称:btrfs-progs,代码行数:58,代码来源:cmds-subvolume.c
示例15: cmd_balance_resume
static int cmd_balance_resume(int argc, char **argv)
{
struct btrfs_ioctl_balance_args args;
const char *path;
DIR *dirstream = NULL;
int fd;
int ret;
int e;
if (check_argc_exact(argc, 2))
usage(cmd_balance_resume_usage);
path = argv[1];
fd = open_file_or_dir(path, &dirstream);
if (fd < 0) {
fprintf(stderr, "ERROR: can't access '%s'\n", path);
return 1;
}
memset(&args, 0, sizeof(args));
args.flags |= BTRFS_BALANCE_RESUME;
ret = ioctl(fd, BTRFS_IOC_BALANCE_V2, &args);
e = errno;
close_file_or_dir(fd, dirstream);
if (ret < 0) {
if (e == ECANCELED) {
if (args.state & BTRFS_BALANCE_STATE_PAUSE_REQ)
fprintf(stderr, "balance paused by user\n");
if (args.state & BTRFS_BALANCE_STATE_CANCEL_REQ)
fprintf(stderr, "balance canceled by user\n");
} else if (e == ENOTCONN || e == EINPROGRESS) {
fprintf(stderr, "ERROR: balance resume on '%s' "
"failed - %s\n", path,
(e == ENOTCONN) ? "Not in progress" :
"Already running");
if (e == ENOTCONN)
return 2;
else
return 1;
} else {
fprintf(stderr,
"ERROR: error during balancing '%s' - %s\n"
"There may be more info in syslog - try dmesg | tail\n", path, strerror(e));
return 1;
}
} else {
printf("Done, had to relocate %llu out of %llu chunks\n",
(unsigned long long)args.stat.completed,
(unsigned long long)args.stat.considered);
}
return 0;
}
开发者ID:B-Rich,项目名称:btrfs-progs,代码行数:56,代码来源:cmds-balance.c
示例16: main
int main(int argc, char **argv)
{
char *path;
int fd;
int ret;
u64 flags = 0;
char *dir = "html";
DIR *dirstream = NULL;
while (1) {
int c = getopt(argc, argv, "cmso:h");
if (c < 0)
break;
switch (c) {
case 'c':
use_color = 1;
break;
case 'd':
flags |= BTRFS_BLOCK_GROUP_DATA;
break;
case 'm':
flags |= BTRFS_BLOCK_GROUP_METADATA;
break;
case 's':
flags |= BTRFS_BLOCK_GROUP_SYSTEM;
break;
case 'o':
dir = optarg;
break;
case 'h':
default:
fragments_usage();
}
}
set_argv0(argv);
if (check_argc_min(argc - optind, 1))
fragments_usage();
path = argv[optind++];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
exit(1);
if (flags == 0)
flags = BTRFS_BLOCK_GROUP_DATA | BTRFS_BLOCK_GROUP_METADATA;
ret = list_fragments(fd, flags, dir);
close_file_or_dir(fd, dirstream);
if (ret)
exit(1);
exit(0);
}
开发者ID:digint,项目名称:btrfs-progs,代码行数:55,代码来源:btrfs-fragments.c
示例17: do_balance
static int do_balance(const char *path, struct btrfs_ioctl_balance_args *args,
int nofilters)
{
int fd;
int ret;
int e;
DIR *dirstream = NULL;
fd = open_file_or_dir(path, &dirstream);
if (fd < 0) {
fprintf(stderr, "ERROR: can't access '%s'\n", path);
return 1;
}
ret = ioctl(fd, BTRFS_IOC_BALANCE_V2, args);
e = errno;
if (ret < 0) {
/*
* older kernels don't have the new balance ioctl, try the
* old one. But, the old one doesn't know any filters, so
* don't fall back if they tried to use the fancy new things
*/
if (e == ENOTTY && nofilters) {
ret = do_balance_v1(fd);
if (ret == 0)
goto out;
e = errno;
}
if (e == ECANCELED) {
if (args->state & BTRFS_BALANCE_STATE_PAUSE_REQ)
fprintf(stderr, "balance paused by user\n");
if (args->state & BTRFS_BALANCE_STATE_CANCEL_REQ)
fprintf(stderr, "balance canceled by user\n");
ret = 0;
} else {
fprintf(stderr, "ERROR: error during balancing '%s' "
"- %s\n", path, strerror(e));
if (e != EINPROGRESS)
fprintf(stderr, "There may be more info in "
"syslog - try dmesg | tail\n");
ret = 1;
}
} else {
printf("Done, had to relocate %llu out of %llu chunks\n",
(unsigned long long)args->stat.completed,
(unsigned long long)args->stat.considered);
ret = 0;
}
out:
close_file_or_dir(fd, dirstream);
return ret;
}
开发者ID:B-Rich,项目名称:btrfs-progs,代码行数:55,代码来源:cmds-balance.c
示例18: cmd_find_new
static int cmd_find_new(int argc, char **argv)
{
int fd;
int ret;
char *subvol;
u64 last_gen;
DIR *dirstream = NULL;
if (check_argc_exact(argc, 3))
usage(cmd_find_new_usage);
subvol = argv[1];
last_gen = arg_strtou64(argv[2]);
ret = test_issubvolume(subvol);
if (ret < 0) {
fprintf(stderr, "ERROR: error accessing '%s'\n", subvol);
return 1;
}
if (!ret) {
fprintf(stderr, "ERROR: '%s' is not a subvolume\n", subvol);
return 1;
}
fd = open_file_or_dir(subvol, &dirstream);
if (fd < 0) {
fprintf(stderr, "ERROR: can't access '%s'\n", subvol);
return 1;
}
ret = ioctl(fd, BTRFS_IOC_SYNC);
if (ret < 0) {
fprintf(stderr, "ERROR: unable to fs-syncing '%s' - %s\n",
subvol, strerror(errno));
close_file_or_dir(fd, dirstream);
return 1;
}
ret = btrfs_list_find_updated_files(fd, 0, last_gen);
close_file_or_dir(fd, dirstream);
return !!ret;
}
开发者ID:osandov,项目名称:btrfs-progs,代码行数:42,代码来源:cmds-subvolume.c
示例19: cmd_subvol_find_new
static int cmd_subvol_find_new(int argc, char **argv)
{
int fd;
int ret;
char *subvol;
u64 last_gen;
DIR *dirstream = NULL;
clean_args_no_options(argc, argv, cmd_subvol_find_new_usage);
if (check_argc_exact(argc - optind, 2))
usage(cmd_subvol_find_new_usage);
subvol = argv[optind];
last_gen = arg_strtou64(argv[optind + 1]);
ret = test_issubvolume(subvol);
if (ret < 0) {
error("cannot access subvolume %s: %s", subvol, strerror(-ret));
return 1;
}
if (!ret) {
error("not a subvolume: %s", subvol);
return 1;
}
fd = btrfs_open_dir(subvol, &dirstream, 1);
if (fd < 0)
return 1;
ret = ioctl(fd, BTRFS_IOC_SYNC);
if (ret < 0) {
error("sync ioctl failed on '%s': %s",
subvol, strerror(errno));
close_file_or_dir(fd, dirstream);
return 1;
}
ret = btrfs_list_find_updated_files(fd, 0, last_gen);
close_file_or_dir(fd, dirstream);
return !!ret;
}
开发者ID:goldwynr,项目名称:btrfs-progs,代码行数:42,代码来源:cmds-subvolume.c
示例20: cmd_balance_resume
static int cmd_balance_resume(int argc, char **argv)
{
struct btrfs_ioctl_balance_args args;
const char *path;
DIR *dirstream = NULL;
int fd;
int ret;
clean_args_no_options(argc, argv, cmd_balance_resume_usage);
if (check_argc_exact(argc - optind, 1))
return 1;
path = argv[optind];
fd = btrfs_open_dir(path, &dirstream, 1);
if (fd < 0)
return 1;
memset(&args, 0, sizeof(args));
args.flags |= BTRFS_BALANCE_RESUME;
ret = ioctl(fd, BTRFS_IOC_BALANCE_V2, &args);
if (ret < 0) {
if (errno == ECANCELED) {
if (args.state & BTRFS_BALANCE_STATE_PAUSE_REQ)
fprintf(stderr, "balance paused by user\n");
if (args.state & BTRFS_BALANCE_STATE_CANCEL_REQ)
fprintf(stderr, "balance canceled by user\n");
} else if (errno == ENOTCONN || errno == EINPROGRESS) {
error("balance resume on '%s' failed: %s", path,
(errno == ENOTCONN) ? "Not in progress" :
"Already running");
if (errno == ENOTCONN)
ret = 2;
else
ret = 1;
} else {
error("error during balancing '%s': %m\n"
"There may be more info in syslog - try dmesg | tail",
path);
ret = 1;
}
} else {
printf("Done, had to relocate %llu out of %llu chunks\n",
(unsigned long long)args.stat.completed,
(unsigned long long)args.stat.considered);
}
close_file_or_dir(fd, dirstream);
return ret;
}
开发者ID:kdave,项目名称:btrfs-progs,代码行数:52,代码来源:cmds-balance.c
注:本文中的close_file_or_dir函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论