----- Original Message -----
> From: "Libo Chen" <[email protected]>
> To: [email protected]
> Cc: "dhaval giani" <[email protected]>, [email protected],
> [email protected],
> [email protected], "h huangqiang" <[email protected]>, "wengmeiling
> weng" <[email protected]>,
> "libo chen" <[email protected]>
> Sent: Tuesday, September 3, 2013 10:49:18 AM
> Subject: [PATCH v3 5/8] cgconfig: change function usage behavior
>
> From: Libo Chen <[email protected]>
>
> remove exit from function usage and add a structure like usage function
> in the other tools.
> This is suggested by Ivana Hutarova Varekova <[email protected]>
>
> now usage willn't exit, so we should help it in err case.
>
> Signed-off-by: Libo Chen <[email protected]>
> ---
> src/tools/cgconfig.c | 46 +++++++++++++++++++++++++++-------------------
> 1 files changed, 27 insertions(+), 19 deletions(-)
>
> diff --git a/src/tools/cgconfig.c b/src/tools/cgconfig.c
> index 095fe27..c856a91 100644
> --- a/src/tools/cgconfig.c
> +++ b/src/tools/cgconfig.c
> @@ -35,29 +35,33 @@
>
> 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 <tuid>:<tgid>] [-a <agid>:<auid>] "\
> "[-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"\
> + 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"\
> + printf(" -L, --load-directory=DIR Parse and load the
> cgroups"\
> " configuration files from a directory\n");
> - printf(" -a <tuid>:<tgid> Default owner of groups files"\
> + printf(" -a <tuid>:<tgid> Default owner of groups
> files"\
> " and directories\n");
> - printf(" -d, --dperm=mode Default group directory"\
> + printf(" -d, --dperm=mode Default group
> directory"\
> " permissions\n");
> - printf(" -f, --fperm=mode Default group file"\
> + printf(" -f, --fperm=mode Default group file"\
> " permissions\n");
> - printf(" -s, --tperm=mode Default tasks file"
> + printf(" -s, --tperm=mode Default tasks file"\
> " permissions\n");
> - printf(" -t <tuid>:<tgid> Default owner of the tasks "
> + printf(" -t <tuid>:<tgid> Default owner of the
> tasks "\
> "file\n");
> - exit(2);
> + }
only small change - the rows should have less or equal to 80 characters (see
checkpatch.pl)
> }
>
> int main(int argc, char *argv[])
> @@ -86,8 +90,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);
>
> @@ -95,8 +101,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;
<- cgroup_free(&default_group); is useless here
> case 'l':
> error = cgroup_string_list_add_item(&cfg_files, optarg);
> if (error) {
> @@ -138,8 +145,9 @@ int main(int argc, char *argv[])
> goto err;
> break;
> default:
> - usage(argv[0]);
> - break;
> + usage(1, argv[0]);
> + error = -1;
> + goto err;
> }
> }
>
> --
> 1.7.1
>
>
>
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel