----- Original Message ----- > From: "Libo Chen" <libo.c...@huawei.com> > To: varek...@redhat.com > Cc: "dhaval giani" <dhaval.gi...@gmail.com>, jsafr...@redhat.com, > libcg-devel@lists.sourceforge.net, > lize...@huawei.com, "h huangqiang" <h.huangqi...@huawei.com>, "wengmeiling > weng" <wengmeiling.w...@huawei.com>, > "libo chen" <libo.c...@huawei.com> > Sent: Tuesday, September 3, 2013 10:49:18 AM > Subject: [PATCH v3 5/8] cgconfig: change function usage behavior > > From: Libo Chen <clbchenlibo.c...@huawei.com> > > remove exit from function usage and add a structure like usage function > in the other tools. > This is suggested by Ivana Hutarova Varekova <varek...@redhat.com> > > now usage willn't exit, so we should help it in err case. > > Signed-off-by: Libo Chen <clbchenlibo.c...@huawei.com> > --- > 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 Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel