本文整理汇总了C++中check_argc_exact函数的典型用法代码示例。如果您正苦于以下问题:C++ check_argc_exact函数的具体用法?C++ check_argc_exact怎么用?C++ check_argc_exact使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了check_argc_exact函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
int c;
unsigned long checksum = 0;
char *str;
char *buf;
int length = 10;
u64 seed = 0;
int loop = 0;
int i;
while ((c = getopt(argc, argv, "l:c:s:h")) != -1) {
switch (c) {
case 'l':
length = atol(optarg);
break;
case 'c':
sscanf(optarg, "%li", &checksum);
loop = 1;
break;
case 's':
seed = atoll(optarg);
break;
case 'h':
print_usage(1);
case '?':
print_usage(255);
}
}
set_argv0(argv);
str = argv[optind];
if (!loop) {
if (check_argc_exact(argc - optind, 1))
print_usage(255);
printf("%12u - %s\n", crc32c(~1, str, strlen(str)), str);
return 0;
}
if (check_argc_exact(argc - optind, 0))
print_usage(255);
buf = malloc(length);
if (!buf)
return -ENOMEM;
if (seed)
init_rand_seed(seed);
while (1) {
for (i = 0; i < length; i++)
buf[i] = rand_range(94) + 33;
if (crc32c(~1, buf, length) == checksum)
printf("%12lu - %.*s\n", checksum, length, buf);
}
return 0;
}
开发者ID:KuronekoDungeon,项目名称:android_external_btrfsprogs,代码行数:58,代码来源:btrfs-crc.c
示例2: cmd_balance_pause
static int cmd_balance_pause(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_pause_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_PAUSE);
e = errno;
close_file_or_dir(fd, dirstream);
if (ret < 0) {
fprintf(stderr, "ERROR: balance pause on '%s' failed - %s\n",
path, (e == ENOTCONN) ? "Not running" : strerror(e));
if (e == ENOTCONN)
return 2;
else
return 1;
}
return 0;
}
开发者ID:B-Rich,项目名称:btrfs-progs,代码行数:34,代码来源:cmds-balance.c
示例3: 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
示例4: 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
示例5: 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
示例6: 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
示例7: 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
示例8: cmd_balance_cancel
static int cmd_balance_cancel(int argc, char **argv)
{
const char *path;
int fd;
int ret;
int e;
if (check_argc_exact(argc, 2))
usage(cmd_balance_cancel_usage);
path = argv[1];
fd = open_file_or_dir(path);
if (fd < 0) {
fprintf(stderr, "ERROR: can't access to '%s'\n", path);
return 12;
}
ret = ioctl(fd, BTRFS_IOC_BALANCE_CTL, BTRFS_BALANCE_CTL_CANCEL);
e = errno;
close(fd);
if (ret < 0) {
fprintf(stderr, "ERROR: balance cancel on '%s' failed - %s\n",
path, (e == ENOTCONN) ? "Not in progress" : strerror(e));
return 19;
}
return 0;
}
开发者ID:chyyuu,项目名称:ski-fsstress,代码行数:30,代码来源:cmds-balance.c
示例9: _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
示例10: 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
示例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;
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
示例12: 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
示例13: main
int main(int ac, char **av)
{
struct btrfs_root *root;
struct btrfs_trans_handle *trans;
int ret;
set_argv0(av);
if (check_argc_exact(ac, 2))
print_usage();
radix_tree_init();
if((ret = check_mounted(av[1])) < 0) {
fprintf(stderr, "Could not check mount status: %s\n", strerror(-ret));
goto out;
} else if(ret) {
fprintf(stderr, "%s is currently mounted. Aborting.\n", av[1]);
ret = -EBUSY;
goto out;
}
root = open_ctree(av[1], 0, OPEN_CTREE_WRITES);
if (root == NULL)
return 1;
trans = btrfs_start_transaction(root, 1);
btrfs_set_super_log_root(root->fs_info->super_copy, 0);
btrfs_set_super_log_root_level(root->fs_info->super_copy, 0);
btrfs_commit_transaction(trans, root);
close_ctree(root);
out:
return !!ret;
}
开发者ID:B-Rich,项目名称:btrfs-progs,代码行数:34,代码来源:btrfs-zero-log.c
示例14: 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
示例15: 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
示例16: 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
示例17: 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
示例18: cmd_receive
int cmd_receive(int argc, char **argv)
{
int c;
char *tomnt = NULL;
char *fromfile = NULL;
struct btrfs_receive r;
int receive_fd = fileno(stdin);
u64 max_errors = 1;
int ret;
memset(&r, 0, sizeof(r));
r.mnt_fd = -1;
r.write_fd = -1;
r.dest_dir_fd = -1;
while ((c = getopt_long(argc, argv, "evf:", long_opts, NULL)) != -1) {
switch (c) {
case 'v':
g_verbose++;
break;
case 'f':
fromfile = optarg;
break;
case 'e':
r.honor_end_cmd = 1;
break;
case 'E':
max_errors = arg_strtou64(optarg);
break;
case '?':
default:
fprintf(stderr, "ERROR: receive args invalid.\n");
return 1;
}
}
if (check_argc_exact(argc - optind, 1))
usage(cmd_receive_usage);
tomnt = argv[optind];
if (fromfile) {
receive_fd = open(fromfile, O_RDONLY | O_NOATIME);
if (receive_fd < 0) {
fprintf(stderr, "ERROR: failed to open %s\n", fromfile);
return 1;
}
}
ret = do_receive(&r, tomnt, receive_fd, max_errors);
return !!ret;
}
开发者ID:B-Rich,项目名称:btrfs-progs,代码行数:53,代码来源:cmds-receive.c
示例19: 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
示例20: cmd_rescue_chunk_recover
int cmd_rescue_chunk_recover(int argc, char *argv[])
{
int ret = 0;
char *file;
int yes = 0;
int verbose = 0;
while (1) {
int c = getopt(argc, argv, "yvh");
if (c < 0)
break;
switch (c) {
case 'y':
yes = 1;
break;
case 'v':
verbose = 1;
break;
case 'h':
default:
usage(cmd_rescue_chunk_recover_usage);
}
}
argc = argc - optind;
if (check_argc_exact(argc, 1))
usage(cmd_rescue_chunk_recover_usage);
file = argv[optind];
ret = check_mounted(file);
if (ret < 0) {
fprintf(stderr, "Could not check mount status: %s\n",
strerror(-ret));
return 1;
} else if (ret) {
fprintf(stderr, "the device is busy\n");
return 1;
}
ret = btrfs_recover_chunk_tree(file, verbose, yes);
if (!ret) {
fprintf(stdout, "Recover the chunk tree successfully.\n");
} else if (ret > 0) {
ret = 0;
fprintf(stdout, "Abort to rebuild the on-disk chunk tree.\n");
} else {
fprintf(stdout, "Fail to recover the chunk tree.\n");
}
return ret;
}
开发者ID:asj,项目名称:btrfs-progs,代码行数:51,代码来源:cmds-rescue.c
注:本文中的check_argc_exact函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论