Subject: Re: touch(1) enchancement, mkstemp(1)
To: Darren Reed <darrenr@cyber.com.au>
From: J.T. Conklin <jtc@NetBSD.ORG>
List: current-users
Date: 02/10/1998 21:22:08
Darren Reed <darrenr@cyber.com.au> writes:
> I'd like to propose an extension to touch(1) that returns information
> about whether the file being touch'd actually existed prior to touch
> being executed.  Something like an option causing it to return -1
> if EEXIST when opening with O_EXCL|O_CREAT.

What would this give you that ``test -e foo'' does not?  I'd hate to
have us start adding various new knobs to shell utilities --- people
might use them.  I can allready hear the whining ``but it works on 
NetBSD...''

> I'd also like to propose that a command line interface to mkstemp(3)
> be implemented.  It would work something like this:
> 
> prog=`basename $0`
> tmpfile=`mkstemp /tmp/${prog}.XXXXXX`
> 
> where tmpfile is the resulting filename (i.e. X's are changed to
> something else).  mkstemp(1) would return 0 on success and 1 if
> it failed to create a file.

For temporary files in shell scripts, does it matter what name is
given to the file?  Perhaps there is a way to create a unlinked 
temp file and refer to it by file descriptor.

Perhaps something like:
	exec tmpfile 4<>
	echo "foo" 1>&4 
	echo "bar" 1>&4
	cat 0<&4

Where tmpfile creates a file with file descriptor 4 and then unlinks
the file (I haven't tried this myself, but I have used bits and pieces
like this in shell scripts in the past.

	--jtc