----- Original Message -----
> From: "Dhaval Giani" <dhaval.gi...@gmail.com>
> To: "Libo Chen" <clbchenlibo.c...@huawei.com>
> Cc: "Ivana Hutarova Varekova" <varek...@redhat.com>, "Jan Safranek" 
> <jsafr...@redhat.com>, "Libcg Development list"
> <libcg-devel@lists.sourceforge.net>, "Li Zefan" <lize...@huawei.com>, "Huang 
> Qiang" <h.huangqi...@huawei.com>,
> "Wengmeiling" <wengmeiling.w...@huawei.com>, "libo chen" 
> <libo.c...@huawei.com>
> Sent: Thursday, September 5, 2013 5:35:46 AM
> Subject: Re: [PATCH v4 4/7] cgconfig: change function usage behavior
> 
> On Wed, Sep 4, 2013 at 11:29 PM, Libo Chen
> <clbchenlibo.c...@huawei.com>wrote:
> 
> > 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.
> >
> > v4:
> >  - fix some code style reported by checkpatch.pl
> >
> > Signed-off-by: Libo Chen <clbchenlibo.c...@huawei.com>
> > ---
> >  src/tools/cgconfig.c |   61
> > ++++++++++++++++++++++++++++---------------------
> >  1 files changed, 35 insertions(+), 26 deletions(-)
> >
> > diff --git a/src/tools/cgconfig.c b/src/tools/cgconfig.c
> > index 900c235..6ed4c77 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);
> >
> 
> Add a return here, and you don't need the else.
All other tools use if .. else .. version so the present version with "else" 
and without "return" are ok for me.
> 
> 
> > +       } 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"\
> > -                       " configuration file\n");
> > -       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"\
> > -                       " 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 <tuid>:<tgid>              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 <tuid>:<tgid>              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 <tuid>:<tgid>              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;
> > +       }
> >
> >         ret = cgroup_string_list_init(&cfg_files, argc/2);
> >
> > @@ -95,8 +102,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) {
> > @@ -138,8 +146,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

Reply via email to