mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-04 10:18:31 +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
|
@ -27,7 +27,9 @@
|
|||
/**
|
||||
* Executes program, with path environment search.
|
||||
*
|
||||
* The current process is replaced with the executed one.
|
||||
* This function is a wrapper of the execve() system call that does path
|
||||
* resolution. The `PATH` environment variable is taken from your global
|
||||
* `environ` rather than the `envp` argument.
|
||||
*
|
||||
* @param prog is the program to launch
|
||||
* @param argv is [file,argv₁..argvₙ₋₁,NULL]
|
||||
|
@ -47,6 +49,10 @@ int execvpe(const char *prog, char *const argv[], char *const *envp) {
|
|||
return efault();
|
||||
}
|
||||
|
||||
if (strchr(prog, '/')) {
|
||||
return execve(prog, argv, envp);
|
||||
}
|
||||
|
||||
// resolve path of executable
|
||||
if (!(exe = commandv(prog, pathbuf, sizeof(pathbuf)))) {
|
||||
return -1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue