Added all missing Throws:, with the exception of slurp,
which might throw pretty much anything
(at least Exception, ErrnoException, ConvException, maybe FormatException, gave up on trying to parse all the called code
(main offenders are formattedRead and the File ctor)).
Those kind of functions should be placed in druntime,
but the *64 (v) functions as a public interface are actually
deprecated and shouldn't be used anymore.
Druntime takes care that the normal stat, fopen, calls support
large files, if __USE_FILE_OFFSET64 is defined (which is what
the new C API does as well)
Note: It's actually important to use the functions from
core.sys.posix.stdio as the functions in core.stdc.stdio
are not large file aware. This is probably a bug in druntime.
This is mainly because it could be nice to use tempFile() in other
unittests. Since tempFile() caches its return value, it would return
the test value ("/") for any other unittest that follows it.
Alternatively, if the other unittest(s) get run first, tempFile()'s
would fail.
FindFirstFile and CreateFile may fail in certain circumstances when
GetFileAttributesEx would succeed - for example, if the user doesn't have
directory listing permissions on the object's containing directory.
Alias this now appears to work properly, hence all tricks & problems
with dual opDispatch are removed.
Also fixes:
Issue 7264 - Can't iterate result from 4-arg dirEntries as string
The reason for this change is the quirky behavior of access for SUID
programs: a file may not appear to "exist", despite that the program
would be able to open it just fine. The behavior in question is described
as follows in the access man page:
> The check is done using the calling process's real UID and GID, rather
> than the effective IDs as is done when actually attempting an operation
> (e.g., open(2)) on the file. This allows set-user-ID programs to easily
> determine the invoking user's authority.
While various operating systems provide eaccess or euidaccess functions,
these are not part of POSIX - so it's safer to use stat instead.