mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-07-15 23:29:56 +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
|
@ -17,15 +17,26 @@
|
|||
│ PERFORMANCE OF THIS SOFTWARE. │
|
||||
╚─────────────────────────────────────────────────────────────────────────────*/
|
||||
#include "libc/calls/calls.h"
|
||||
#include "libc/calls/sysparam.h"
|
||||
#include "libc/errno.h"
|
||||
#include "libc/log/log.h"
|
||||
|
||||
static char ttyname_buf[PATH_MAX];
|
||||
#include "libc/paths.h"
|
||||
|
||||
/**
|
||||
* Returns name of terminal.
|
||||
*
|
||||
* This function isn't required to be thread safe, consider ttyname_r().
|
||||
*
|
||||
* @return terminal path on success, or null w/ errno
|
||||
* @see ttyname_r()
|
||||
*/
|
||||
char *ttyname(int fd) {
|
||||
int rc = ttyname_r(fd, ttyname_buf, sizeof(ttyname_buf));
|
||||
if (rc != 0) return NULL;
|
||||
return &ttyname_buf[0];
|
||||
errno_t err;
|
||||
static char buf[sizeof(_PATH_DEV) + MAXNAMLEN];
|
||||
if (!(err = ttyname_r(fd, buf, sizeof(buf)))) {
|
||||
return buf;
|
||||
} else {
|
||||
errno = err;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue