[PATCH][BZ #12685] Allow arbitrary number of modes in fopen.
Ondřej Bílka
neleai@seznam.cz
Fri May 10 10:34:00 GMT 2013
On Thu, May 09, 2013 at 02:49:22PM -0400, Carlos O'Donell wrote:
> On 05/09/2013 11:34 AM, Joseph S. Myers wrote:
> > On Thu, 9 May 2013, Ondrej Bilka wrote:
> >
> >> Hi,
> >>
> >> I implemented Michael Kerrisk's suggestion from
> >> http://sourceware.org/bugzilla/show_bug.cgi?id=12685
> >> to read mode until NULL or comma (for ,ccs=) is reached.
> >>
> >> OK to commit?
> >>
> >> Ondra
> >>
> >> * libio/fileops.c (_IO_new_file_fopen): Allow arbitrary number of modes.
> >> * libio/iofdopen.c (_IO_new_fdopen): Likewise.
> >
> > I think this should add testcases (for both functions) that a mode late in
> > a long string is properly handled.
> >
>
> I agree we need test cases for this to prevent regression.
>
How should I test it? It looks that only x has directly testable
behaviour.
>From manpage:
c (since glibc 2.3.3)
Do not make the open operation, or subsequent read and
write operations, thread cancellation points. This flag is ignored for
fdopen().
e (since glibc 2.7)
Open the file with the O_CLOEXEC flag. See open(2) for
more information. This flag is ignored for fdopen().
m (since glibc 2.3)
Attempt to access the file using mmap(2), rather than I/O
system calls (read(2), write(2)). Currently, use of mmap(2) is only
attempted for a file opened for reading.
x Open the file exclusively (like the O_EXCL flag of
open(2)). If the file already exists, fopen() fails, and sets errno to
EEXIST.
This flag is ignored for fdopen().
In addition to the above characters, fopen() and freopen()
support the following syntax in mode:
,ccs=string
More information about the Libc-alpha
mailing list