#
835f9f95 |
|
08-Nov-2012 |
Rich Felker <dalias@aerifal.cx> |
clean up stdio_impl.h this header evolved to facilitate the extremely lazy practice of omitting explicit includes of the necessary headers in individual stdio source files; not only was this sloppy, but it also increased build time. now, stdio_impl.h is only including the headers it needs for its own use; any further headers needed by source files are included directly where needed.
|
#
c8cb6bcd |
|
24-Oct-2012 |
Rich Felker <dalias@aerifal.cx> |
correct locking in stdio functions that tried to be lock-free these functions must behave as if they obtain the lock via flockfile to satisfy POSIX requirements. since another thread can provably hold the lock when they are called, they must wait to obtain the lock before they can return, even if the correct return value could be obtained without locking. in the case of fclose and freopen, failure to do so could cause correct (albeit obscure) programs to crash or otherwise misbehave; in the case of feof, ferror, and fwide, failure to obtain the lock could sometimes return incorrect results. in any case, having these functions proceed and return while another thread held the lock was wrong.
|
#
892cafff |
|
24-Oct-2012 |
Rich Felker <dalias@aerifal.cx> |
greatly improve freopen behavior 1. don't open /dev/null just as a basis to copy flags; use shared __fmodeflags function to get the right file flags for the mode. 2. handle the case (probably invalid, but whatever) case where the original stream's file descriptor was closed; previously, the logic re-closed it. 3. accept the "e" mode flag for close-on-exec; update dup3 to fallback to using dup2 so we can simply call __dup3 instead of putting fallback logic in freopen itself.
|
#
708c91f4 |
|
24-Oct-2012 |
Rich Felker <dalias@aerifal.cx> |
remove useless failure-check from freopen (can't happen)
|
#
400c5e5c |
|
06-Sep-2012 |
Rich Felker <dalias@aerifal.cx> |
use restrict everywhere it's required by c99 and/or posix 2008 to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
|
#
2499cd9d |
|
18-Jun-2012 |
Rich Felker <dalias@aerifal.cx> |
remove flush hook cruft that was never used from stdio there is no need/use for a flush hook. the write function serves this purpose already. i originally created the hook for implementing mem streams based on a mistaken reading of posix, and later realized it wasn't useful but never removed it until now.
|
#
aa398f56 |
|
19-Mar-2011 |
Rich Felker <dalias@aerifal.cx> |
global cleanup to use the new syscall interface
|
#
0b44a031 |
|
11-Feb-2011 |
Rich Felker <dalias@aerifal.cx> |
initial check-in, version 0.5.0
|