Compatibility with POSIX.1
The following functions are compatible with POSIX.1:
Process Primitives (Section 3)
fork, execl, execle, execlp, execv, execve, execvp, wait, waitpid,
_exit, kill, sigemptyset, sigfillset, sigaddset, sigdelset,
sigismember, sigaction, pthread_sigmask, sigprocmask, sigpending,
sigsuspend, alarm, pause, sleep, pthread_kill, pthread_sigmask
Process Environment (Section 4)
getpid, getppid, getuid, geteuid, getgid, getegid, setuid, setgid,
getgroups, getlogin, getpgrp, setsid, setpgid, uname, time, times,
getenv, ctermid, ttyname, isatty, sysconf
Files and Directories (Section 5)
opendir, readdir, rewinddir, closedir, chdir, getcwd, open, creat,
umask, link, mkdir, unlink, rmdir, rename, stat, fstat, access, chmod,
fchmod, chown, utime, ftruncate, pathconf, fpathconf
Input and Output Primitives (Section 6)
pipe, dup, dup2, close, read, write, fcntl, lseek, fsync
Device- and Class-Specific Functions (Section 7)
cfgetispeed, cfgetospeed, cfsetispeed, cfsetospeed, tcdrain, tcflow,
tcflush, tcgetattr, tcgetpgrp, tcsendbreak, tcsetattr, tcsetpgrp
Language-Specific Services for the C Programming Language (Section 8)
abort, exit, fclose, fdopen, fflush, fgetc, fgets, fileno, fopen,
fprintf, fputc, fputs, fread, freopen, fscanf, fseek, ftell, fwrite,
getc, getchar, gets, perror, printf, putc, putchar, puts, remove,
rewind, scanf, setlocale, siglongjmp, sigsetjmp, tmpfile, tmpnam,
tzset
System Databases (Section 9)
getgrgid, getgrnam, getpwnam, getpwuid
Synchronization (Section 11)
sem_init, sem_destroy, sem_wait, sem_trywait, sem_post,
pthread_mutex_init, pthread_mutex_destroy, pthread_mutex_lock,
pthread_mutex_trylock, pthread_mutex_unlock
Memory Management (Section 12)
mmap, mprotect, msync, munmap
Thread Management (Section 16)
pthread_attr_init, pthread_attr_destroy, pthread_attr_setstacksize,
pthread_attr_getstacksize, pthread_create, pthread_exit, pthread_self,
pthread_equal
Thread-Specific Data Functions (Section 17)
pthread_key_create, pthread_setspecific, pthread_getspecific,
pthread_key_delete
Implementation Details
setuid and setgid
always return ENOSYS.
link will copy the file if it can't
implement a true symbolic link. Currently, symbolic links work, if at
all, only under Windows NT.
chown always returns zero.
fcntl doesn't support F_GETLK - it returns
-1 and sets errno to ENOSYS.
lseek only works properly on binary
files.