Hey Serge, On Fri, Nov 8, 2013 at 4:06 PM, Serge Hallyn <serge.hal...@ubuntu.com> wrote: > Quoting S.Çağlar Onur (cag...@10ur.org): >> creat() is equivalent to open() with flags equal to O_CREAT|O_WRONLY|O_TRUNC > > Hi, > > I'm confused - what is redundant in the use of creat()? If there is an > improvement here then I don't understand what it is. Otherwise I'd > argue creat() is more concise and clearer about its intent.
There is no improvement other than a syntactic change (assuming creat() is also protected by glibc like open()). I saw them while trying to come up with a list of functions protected by process_lock and replaced them with open() without checking what glibc does. If you think creat is also protected than please feel free to drop this :) >> Signed-off-by: S.Çağlar Onur <cag...@10ur.org> >> --- >> src/lxc/bdev.c | 2 +- >> src/lxc/conf.c | 6 +++--- >> src/lxc/lxc_start.c | 2 +- >> 3 files changed, 5 insertions(+), 5 deletions(-) >> >> diff --git a/src/lxc/bdev.c b/src/lxc/bdev.c >> index c7e5e5e..0194ccd 100644 >> --- a/src/lxc/bdev.c >> +++ b/src/lxc/bdev.c >> @@ -1594,7 +1594,7 @@ static int do_loop_create(const char *path, unsigned >> long size, const char *fsty >> int fd, ret; >> // create the new loopback file. >> process_lock(); >> - fd = creat(path, S_IRUSR|S_IWUSR); >> + fd = open(path, O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR|S_IWUSR); >> process_unlock(); >> if (fd < 0) >> return -1; >> diff --git a/src/lxc/conf.c b/src/lxc/conf.c >> index a756731..dc34568 100644 >> --- a/src/lxc/conf.c >> +++ b/src/lxc/conf.c >> @@ -909,7 +909,7 @@ static int setup_tty(const struct lxc_rootfs *rootfs, >> return -1; >> } >> process_lock(); >> - ret = creat(lxcpath, 0660); >> + ret = open(lxcpath, O_CREAT|O_WRONLY|O_TRUNC, 0660); >> process_unlock(); >> if (ret==-1 && errno != EEXIST) { >> SYSERROR("error creating %s\n", lxcpath); >> @@ -945,7 +945,7 @@ static int setup_tty(const struct lxc_rootfs *rootfs, >> /* If we populated /dev, then we need to create >> /dev/ttyN */ >> if (access(path, F_OK)) { >> process_lock(); >> - ret = creat(path, 0660); >> + ret = open(path, O_CREAT|O_WRONLY|O_TRUNC, >> 0660); >> process_unlock(); >> if (ret==-1) { >> SYSERROR("error creating %s\n", path); >> @@ -1546,7 +1546,7 @@ static int setup_ttydir_console(const struct >> lxc_rootfs *rootfs, >> } >> >> process_lock(); >> - ret = creat(lxcpath, 0660); >> + ret = open(lxcpath, O_CREAT|O_WRONLY|O_TRUNC, 0660); >> process_unlock(); >> if (ret==-1 && errno != EEXIST) { >> SYSERROR("error %d creating %s\n", errno, lxcpath); >> diff --git a/src/lxc/lxc_start.c b/src/lxc/lxc_start.c >> index add2542..f8fc6d4 100644 >> --- a/src/lxc/lxc_start.c >> +++ b/src/lxc/lxc_start.c >> @@ -62,7 +62,7 @@ static int ensure_path(char **confpath, const char *path) >> >> if (path) { >> if (access(path, W_OK)) { >> - fd = creat(path, 0600); >> + fd = open(path, O_CREAT|O_WRONLY|O_TRUNC, 0600); >> if (fd < 0 && errno != EEXIST) { >> SYSERROR("failed to create '%s'", path); >> goto err; >> -- >> 1.8.3.2 >> >> >> ------------------------------------------------------------------------------ >> November Webinars for C, C++, Fortran Developers >> Accelerate application performance with scalable programming models. Explore >> techniques for threading, error checking, porting, and tuning. Get the most >> from the latest Intel processors and coprocessors. See abstracts and register >> http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk >> _______________________________________________ >> Lxc-devel mailing list >> Lxc-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/lxc-devel -- S.Çağlar Onur <cag...@10ur.org> ------------------------------------------------------------------------------ November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel