[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Zero-length arguments?
From: |
Eric Blake |
Subject: |
Re: Zero-length arguments? |
Date: |
Mon, 05 Nov 2012 10:23:57 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121016 Thunderbird/16.0.1 |
On 11/05/2012 10:15 AM, Bernhard Voelker wrote:
> My question bases on the discussion in:
> https://lists.samba.org/archive/rsync/2012-November/027946.html
> where an empty variable $OPTS was passed quoted:
> $ rsync "$OPTS" -avx from to
>
> How should a program react for Zero-length arguments?
> Today, coreutils programs give a diagnostic like this:
>
> $ cat ''
> cat: : No such file or directory
That's a literal strerror() output based on the ENOENT error required
for treating an empty string as a file.
> Exceptions are du and wc:
>
> $ du ''
> du: invalid zero-length file name
This situation and others like it are the result of the gnulib module
argv-iter, which obviously filters out empty strings prior to ever
triggering an ENOENT failure. But the end result is still the same - an
attempt to use an empty string as a file name fails.
>
> Is this behavior correct / specified somewhere?
Correct, yes. Specified somewhere? Well, the generic rule that the
empty file name must cause failure is documented in POSIX; the specific
choice of what error message we issue is not documented.
> At least it should be consistent among coreutils, eh?
Perhaps. Patches welcome, if you think one or the other style of error
message is worth improving. But I'm not personally bothered by it.
--
Eric Blake address@hidden +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature