mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-06-30 00:08:30 +00:00
Make more fixes and improvements
- Remove PAGESIZE constant - Fix realloc() documentation - Fix ttyname_r() error reporting - Make forking more reliable on Windows - Make execvp() a few microseconds faster - Make system() a few microseconds faster - Tighten up the socket-related magic numbers - Loosen restrictions on mmap() offset alignment - Improve GetProgramExecutableName() with getenv("_") - Use mkstemp() as basis for mktemp(), tmpfile(), tmpfd() - Fix flakes in pthread_cancel_test, unix_test, fork_test - Fix recently introduced futex stack overflow regression - Let sockets be passed as stdio to subprocesses on Windows - Improve security of bind() on Windows w/ SO_EXCLUSIVEADDRUSE
This commit is contained in:
parent
140a8a52e5
commit
18bb5888e1
311 changed files with 1239 additions and 2622 deletions
|
@ -30,6 +30,17 @@
|
|||
* The `O_CLOEXEC` flag shall be cleared from the resulting file
|
||||
* descriptor; see dup3() to preserve it.
|
||||
*
|
||||
* One use case for duplicating file descriptors is to be able to
|
||||
* reassign an open()'d file or pipe() to the stdio of an executed
|
||||
* subprocess. On Windows, in order for this to work, the subprocess
|
||||
* needs to be a Cosmopolitan program that has socket() linked.
|
||||
*
|
||||
* Only small programs should duplicate sockets. That's because this
|
||||
* implementation uses DuplicateHandle() on Windows, which Microsoft
|
||||
* says might cause its resources to leak internally. Thus it likely
|
||||
* isn't a good idea to design a server that does it a lot and lives
|
||||
* a long time, without contributing a patch to this implementation.
|
||||
*
|
||||
* @param fd remains open afterwards
|
||||
* @return some arbitrary new number for fd
|
||||
* @raise EPERM if pledge() is in play without stdio
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue