Subject: bug#6900: mktemp: want option to make a fifo

From: Eric Blake <[email-masked]>
Date: Mon, 23 Aug 2010 12:00:50 -0600

On 08/23/2010 11:34 AM, John Reiser wrote:
> On 08/23/2010 09:40 AM, Eric Blake wrote:
>> On 08/23/2010 09:22 AM, John Reiser wrote:
>>> mktemp: Please add an option which creates a fifo
>>>    [snip]
>>
>> Thanks for the report.  However, I'm inclined to mark this bug as a
>> duplicate of 6330, for the reasons already documented in this long thread:
>> http://lists.gnu.org/archive/html/bug-coreutils/2010-06/msg00013.html
>
> The suggested alternative (use "mktemp -d" to create a uniquely-named
> directory, then use mkfifo of an arbitrary fixed name within that directory)
> satisfies only some of the desired properties.  Yes, it's a fifo with
> a safely-created unique name.  However, removing that fifo leaves behind
> the directory, and the directory also occupies its own space [often
> a few kilobytes] even during the lifetime of the fifo.

If we add 'mktemp --fifo', then where do we stop?  What about creating a 
uniquely named symlink?  Or a new shared memory object?

http://lists.gnu.org/archive/html/bug-coreutils/2010-06/msg00033.html

And did you not read in that thread about the arguments that recursively 
moving an entire temporary directory hierarchy with 'rm -rf dir' is just 
as short in shell code as 'rm -f fifo'?  A couple kilobytes of disk 
space for a temporary directory given today's storage technologies is 
not a very convincing argument.

The whole argument of Unix is that each tool does one thing well, so 
that the combination of tools can do everything.  mktemp should NOT be 
bloated just to reproduce the functionality of mkfifo or of ln, when 
those tools can already be paired nicely.

-- 
Eric Blake   [email-masked]    +1-801-349-2682
Libvirt virtualization library http://libvirt.org