From: Libo Chen Date: Thu, 12 Sep 2013 06:38:34 +0000 (+0200) Subject: cgconfig: change function usage behavior X-Git-Tag: v0.41~39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8b2b3cf044437fb1b0c33938a4ac25bf71a8cf6;p=thirdparty%2Flibcgroup.git cgconfig: change function usage behavior remove exit from function usage and add a structure like usage function in the other tools. This is suggested by Ivana Hutarova Varekova now usage willn't exit, so we should help it in err case. v4: - fix some code style reported by checkpatch.pl Signed-off-by: Libo Chen Acked-by: Ivana Hutarova Varekova --- diff --git a/src/tools/cgconfig.c b/src/tools/cgconfig.c index 8dd1e730..5f19f708 100644 --- a/src/tools/cgconfig.c +++ b/src/tools/cgconfig.c @@ -35,29 +35,34 @@ static struct cgroup_string_list cfg_files; -static void usage(char *progname) +static void usage(int status, char *progname) { - printf("Usage: %s [-h] [-f mode] [-d mode] [-s mode] "\ + if (status != 0) { + fprintf(stderr, "Wrong input parameters, "\ + "try %s -h' for more information.\n", progname); + } else { + printf("Usage: %s [-h] [-f mode] [-d mode] [-s mode] "\ "[-t :] [-a :] "\ "[-l FILE] [-L DIR] ...\n", basename(progname)); - printf("Parse and load the specified cgroups configuration file\n"); - printf("\n"); - printf(" -h, --help Display this help\n"); - printf(" -l, --load=FILE Parse and load the cgroups"\ - " configuration file\n"); - printf(" -L, --load-directory=DIR Parse and load the cgroups"\ - " configuration files from a directory\n"); - printf(" -a : Default owner of groups files"\ - " and directories\n"); - printf(" -d, --dperm=mode Default group directory"\ - " permissions\n"); - printf(" -f, --fperm=mode Default group file"\ - " permissions\n"); - printf(" -s, --tperm=mode Default tasks file" - " permissions\n"); - printf(" -t : Default owner of the tasks " - "file\n"); - exit(2); + printf("Parse and load the specified cgroups "\ + "configuration file\n"); + printf("\n"); + printf(" -h, --help Display this help\n"); + printf(" -l, --load=FILE Parse and load "\ + "the cgroups configuration file\n"); + printf(" -L, --load-directory=DIR Parse and load "\ + "the cgroups configuration files from a directory\n"); + printf(" -a : Default owner of "\ + "groups files and directories\n"); + printf(" -d, --dperm=mode Default group "\ + "directory permissions\n"); + printf(" -f, --fperm=mode Default group file "\ + "permissions\n"); + printf(" -s, --tperm=mode Default tasks file "\ + "permissions\n"); + printf(" -t : Default owner of "\ + "the tasks file\n"); + } } int main(int argc, char *argv[]) @@ -86,8 +91,10 @@ int main(int argc, char *argv[]) cgroup_set_default_logger(-1); - if (argc < 2) - usage(argv[0]); /* usage() exits */ + if (argc < 2) { + usage(1, argv[0]); + return -1; + } error = cgroup_string_list_init(&cfg_files, argc/2); if (error) @@ -97,8 +104,9 @@ int main(int argc, char *argv[]) NULL)) > 0) { switch (c) { case 'h': - usage(argv[0]); - break; + usage(0, argv[0]); + error = 0; + goto err; case 'l': error = cgroup_string_list_add_item(&cfg_files, optarg); if (error) { @@ -142,8 +150,9 @@ int main(int argc, char *argv[]) goto err; break; default: - usage(argv[0]); - break; + usage(1, argv[0]); + error = -1; + goto err; } }