[lxc-devel] [PATCH] replace redundant creat() with open()

Serge Hallyn serge.hallyn at ubuntu.com
Fri Nov 8 21:06:49 UTC 2013


Quoting S.Çağlar Onur (caglar at 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.

> Signed-off-by: S.Çağlar Onur <caglar at 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 at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel




More information about the lxc-devel mailing list