System interfaces compatible with the Single Unix Specification, Version 4: Note that the core of the Single Unix Specification, Version 4 is also IEEE Std 1003.1-2008 (POSIX.1-2008). FD_CLR FD_ISSET FD_SET FD_ZERO _Exit _exit _longjmp _setjmp _tolower _toupper a64l abort abs accept access acos acosf acosh acoshf alarm alphasort asctime asctime_r asin asinf asinh asinhf atan atan2 atan2f atanf atanh atanhf atexit atof atoff atoi atol atoll basename bind bsearch btowc cabs cabsf calloc catclose (available in external "catgets" library) catgets (available in external "catgets" library) catopen (available in external "catgets" library) cbrt cbrtf ceil ceilf cfgetispeed cfgetospeed cfsetispeed cfsetospeed chdir chmod chown chroot (see chapter "Implementation Notes") clearerr clock clock_getres (see chapter "Implementation Notes") clock_gettime (see chapter "Implementation Notes") clock_setres (see chapter "Implementation Notes") close closedir closelog confstr connect copysign copysignf cos cosf cosh coshf creat crypt (available in external "crypt" library) ctermid ctime ctime_r daylight dbm_clearerr (available in external "libgdbm" library) dbm_close (available in external "libgdbm" library) dbm_delete (available in external "libgdbm" library) dbm_error (available in external "libgdbm" library) dbm_fetch (available in external "libgdbm" library) dbm_firstkey (available in external "libgdbm" library) dbm_nextkey (available in external "libgdbm" library) dbm_open (available in external "libgdbm" library) dbm_store (available in external "libgdbm" library) difftime dirfd dirname div dlclose dlerror dlopen dlsym dprintf drand48 dup dup2 encrypt (available in external "crypt" library) endgrent endhostent endprotoent endpwent endservent endutxent environ erand48 erf erfc erfcf erff errno execl execle execlp execv execve execvp exit exp exp2 exp2f expf expm1 expm1f fabs fabsf faccessat fchdir fchmod fchmodat fchown fchownat fclose fcntl fdatasync fdim fdimf fdopen fdopendir feof ferror fflush ffs fgetc fgetpos fgets fgetwc fgetws fileno flockfile floor floorf fma fmaf fmax fmaxf fmemopen fmin fminf fmod fmodf fnmatch fopen fork fpathconf fpclassify (see chapter "Implementation Notes") fprintf fputc fputs fputwc fputws fread free freeaddrinfo freopen frexp frexpf fscanf fseek fseeko fsetpos fstat fstatat fstatvfs fsync ftell ftello ftok ftruncate ftrylockfile ftw funlockfile futimens futimes fwide fwprintf fwrite fwscanf gai_strerror getaddrinfo getc getc_unlocked getchar getchar_unlocked getcwd getdelim getdomainname getegid getenv geteuid getgid getgrent getgrgid getgrgid_r getgrnam getgrnam_r getgroups gethostid gethostname getitimer (see chapter "Implementation Notes") getline getlogin getlogin_r getnameinfo getopt getpeername getpgid getpgrp getpid getppid getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwnam_r getpwuid getpwuid_r getrlimit getrusage gets getservbyname getservbyport getservent getsid getsockname getsockopt getsubopt gettimeofday getuid getutxent getutxid getutxline getwc getwchar glob globfree gmtime gmtime_r grantpt hcreate hdestroy hsearch hstrerror htonl htons hypot hypotf iconv (available in external "libiconv" library) iconv_close (available in external "libiconv" library) iconv_open (available in external "libiconv" library) if_freenameindex if_indextoname if_nameindex if_nametoindex ilogb ilogbf imaxabs imaxdiv inet_addr inet_ntoa inet_ntop inet_pton initstate insque ioctl isalnum isalpha isascii isatty isblank iscntrl isdigit isfinite (see chapter "Implementation Notes") isgraph isgreater (see chapter "Implementation Notes") isgreaterequal (see chapter "Implementation Notes") isinf (see chapter "Implementation Notes") isless islessequal (see chapter "Implementation Notes") islessgreater (see chapter "Implementation Notes") islower isnan (see chapter "Implementation Notes") isnormal (see chapter "Implementation Notes") isprint ispunct isspace isunordered (see chapter "Implementation Notes") isupper iswalnum iswalpha iswblank iswcntrl iswctype iswdigit iswgraph iswlower iswprint iswpunct iswspace iswupper iswxdigit isxdigit j0 j1 jn jrand48 kill killpg l64a labs lchown lcong48 ldexp ldexpf ldiv lfind lgamma lgammaf link linkat listen llabs lldiv llrint llrintf llrintl localeconv localtime localtime_r lockf log log10 log10f log1p log1pf log2 log2f logb logbf logf longjmp lrand48 lrint lrintf lrintl lround lroundf lsearch lseek lstat malloc mblen mbrlen mbrtowc mbsinit mbsnrtowcs mbsrtowcs mbstowcs mbtowc memccpy memchr memcmp memcpy memmove memset mkdir mkdirat mkdtemp mkfifo mkfifoat mknod mknodat mkstemp mktime mlock mmap modf modff mprotect mq_close mq_getattr mq_notify mq_open mq_receive mq_send mq_setattr mq_timedreceive mq_timedsend mq_unlink mrand48 msgctl (see chapter "Implementation Notes") msgget (see chapter "Implementation Notes") msgrcv (see chapter "Implementation Notes") msgsnd (see chapter "Implementation Notes") msync munlock munmap nan nanf nanosleep nearbyint nearbyintf nextafter nextafterf nftw nice nl_langinfo nrand48 ntohl ntohs open open_memstream open_wmemstream openat opendir openlog optarg opterr optind optopt pathconf pause pclose perror pipe poll popen posix_fadvise posix_fallocate posix_madvise posix_memalign posix_openpt pow powf pread printf pselect pthread_atfork pthread_attr_destroy pthread_attr_getdetachstate pthread_attr_getinheritsched pthread_attr_getschedparam pthread_attr_getschedpolicy pthread_attr_getscope pthread_attr_getstacksize pthread_attr_init pthread_attr_setdetachstate pthread_attr_setinheritsched pthread_attr_setschedparam pthread_attr_setschedpolicy pthread_attr_setscope pthread_attr_setstacksize pthread_cancel pthread_cond_broadcast pthread_cond_destroy pthread_cond_init pthread_cond_signal pthread_cond_timedwait pthread_cond_wait pthread_condattr_destroy pthread_condattr_getpshared pthread_condattr_init pthread_condattr_setpshared pthread_create pthread_detach pthread_equal pthread_exit pthread_getconcurrency pthread_getschedparam pthread_getspecific pthread_join pthread_key_create pthread_key_delete pthread_kill pthread_mutex_destroy pthread_mutex_getprioceiling pthread_mutex_init pthread_mutex_lock pthread_mutex_setprioceiling pthread_mutex_trylock pthread_mutex_unlock pthread_mutexattr_destroy pthread_mutexattr_getprioceiling pthread_mutexattr_getprotocol pthread_mutexattr_getpshared pthread_mutexattr_gettype pthread_mutexattr_init pthread_mutexattr_setprioceiling pthread_mutexattr_setprotocol pthread_mutexattr_setpshared pthread_mutexattr_settype pthread_once pthread_rwlock_destroy pthread_rwlock_init pthread_rwlock_rdlock pthread_rwlock_tryrdlock pthread_rwlock_trywrlock pthread_rwlock_unlock pthread_rwlock_wrlock pthread_rwlockattr_destroy pthread_rwlockattr_getpshared pthread_rwlockattr_init pthread_rwlockattr_setpshared pthread_self pthread_setcancelstate pthread_setcanceltype pthread_setconcurrency pthread_setschedparam pthread_setspecific pthread_sigmask pthread_testcancel ptsname putc putc_unlocked putchar putchar_unlocked putenv puts pututxline putwc putwchar pwrite qsort raise rand rand_r random read readdir readdir_r readlink readlinkat readv realloc realpath recv recvfrom recvmsg regcomp regerror regexec regfree remainder remainderf remove remque remquo remquof rename renameat rewind rewinddir rint rintf rintl rmdir round roundf scalbln scalblnf scalbn scalbnf scandir scanf sched_get_priority_max sched_get_priority_min sched_getparam sched_getscheduler sched_rr_get_interval sched_setparam sched_setscheduler sched_yield seed48 seekdir select sem_close sem_destroy sem_getvalue sem_init sem_open sem_post sem_timedwait sem_trywait sem_unlink sem_wait semctl (see chapter "Implementation Notes") semget (see chapter "Implementation Notes") semop (see chapter "Implementation Notes") send sendmsg sendto setbuf setegid setenv seteuid setgid setgrent sethostent setitimer (see chapter "Implementation Notes") setjmp setkey (available in external "crypt" library) setlocale setlogmask setpgid setpgrp setpriority setprotoent setpwent setregid setreuid setrlimit setservent setsid setsockopt setstate setuid setutxent setvbuf shm_open shm_unlink shmat (see chapter "Implementation Notes") shmctl (see chapter "Implementation Notes") shmdt (see chapter "Implementation Notes") shmget (see chapter "Implementation Notes") shutdown sigaction sigaddset sigdelset sigemptyset sigfillset sighold sigignore siginterrupt sigismember siglongjmp signal signbit (see chapter "Implementation Notes") signgam sigpause sigpending sigprocmask sigqueue sigrelse sigset sigsetjmp sigsuspend sigwait sigwaitinfo sin sinf sinh sinhf sleep snprintf socket socketpair sprintf sqrt sqrtf srand srand48 srandom sscanf stat statvfs stderr stdin stdout stpcpy stpncpy strcasecmp strcat strchr strcmp strcoll strcpy strcspn strdup strerror strerror_r strftime strlen strncasecmp strncat strncmp strncpy strndup strnlen strpbrk strptime strrchr strsignal strspn strstr strtod strtof strtoimax strtok strtok_r strtol strtoll strtoul strtoull strtoumax strxfrm swab swprintf swscanf symlink symlinkat sync sysconf syslog system tan tanf tanh tanhf tcdrain tcflow tcflush tcgetattr tcgetpgrp tcsendbreak tcsetattr tcsetpgrp tdelete telldir tempnam tfind tgamma tgammaf time timer_create timer_delete timer_gettime timer_settime times timezone tmpfile tmpnam toascii tolower toupper towctrans towlower towupper trunc truncate truncf tsearch ttyname ttyname_r twalk tzname tzset umask uname ungetc ungetwc unlink unlinkat unlockpt unsetenv utime utimensat utimes va_arg va_copy va_end va_start vdprintf vfprintf vfscanf vfwprintf vfwscanf vprintf vscanf vsnprintf vsprintf vsscanf vswprintf vswscanf vwprintf vwscanf wait waitpid wcpcpy wcpncpy wcrtomb wcscasecmp wcscat wcschr wcscmp wcscoll wcscpy wcscspn wcsdup wcsftime wcslen wcsncasecmp wcsncat wcsncmp wcsncpy wcsnlen wcsnrtombs wcspbrk wcsrchr wcsrtombs wcsspn wcsstr wcstod wcstof wcstoimax wcstok wcstol wcstoll wcstombs wcstoul wcstoull wcstoumax wcswidth wcsxfrm wctob wctomb wctrans wctype wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wordexp wordfree wprintf write writev wscanf y0 y1 yn System interfaces compatible with BSD functions: bindresvport bindresvport_sa cfmakeraw daemon dn_comp dn_expand dn_skipname drem eaccess endusershell err errx finite finitef fiprintf flock forkpty fpurge freeifaddrs fstatfs fts_children fts_close fts_get_clientptr fts_get_stream fts_open fts_read fts_set fts_set_clientptr funopen gamma gamma_r gammaf gammaf_r getdtablesize getifaddrs getpagesize getpeereid getprogname getusershell herror inet_aton inet_makeaddr inet_netof inet_network initgroups iruserok iruserok_sa login login_tty logout logwtmp mkstemps openpty rcmd rcmd_af reallocf res_close res_init res_mkquery res_nclose res_ninit res_nmkquery res_nquery res_nquerydomain res_nsearch res_nsend res_query res_querydomain res_search res_send revoke rexec rresvport rresvport_af ruserok sbrk setbuffer setgroups setlinebuf setpassent setprogname settimeofday setusershell statfs strcasestr strlcat strlcpy strsep updwtmp valloc verr verrx vhangup (see chapter "Implementation Notes") vsyslog vwarn vwarnx wait3 wait4 warn warnx wcslcat wcslcpy System interfaces compatible with GNU or Linux extensions: argz_add argz_add_sep argz_append argz_count argz_create argz_create_sep argz_delete argz_extract argz_insert argz_next argz_replace argz_stringify asnprintf asprintf asprintf_r canonicalize_file_name dremf envz_add envz_entry envz_get envz_merge envz_remove envz_strip euidaccess exp10 exp10f fcloseall fcloseall_r fgetxattr flistxattr fopencookie fremovexattr fsetxattr getopt_long getopt_long_only getxattr lgetxattr listxattr llistxattr lremovexattr lsetxattr memmem mempcpy pow10 pow10f removexattr setxattr tdestroy timegm timelocal updwtmpx utmpxname vasnprintf vasprintf vasprintf_r System interfaces compatible with Solaris or SunOS functions: acl aclcheck aclfrommode aclfrompbits aclfromtext aclsort acltomode acltopbits acltotext endmntent facl futimesat getmntent memalign setmntent Other UNIX system interfaces, deprecated or not in POSIX.1-2008: bcmp (POSIX.1-2001, SUSv3) bcopy (SUSv3) bzero (SUSv3) cuserid (POSIX.1-1988, SUSv2) ecvt (SUSv3) endutent (XPG2) fcvt (SUSv3) ftime (SUSv3) gcvt (SUSv3) gethostbyaddr (SUSv3) gethostbyname (SUSv3) gethostbyname2 (first defined in BIND 4.9.4) getpass (SUSv2) getutent (XPG2) getutid (XPG2) getutline (XPG2) getw (SVID) getwd (SUSv3) h_errno (SUSv3) index (SUSv3) mallinfo (SVID) mallopt (SVID) mktemp (SUSv3) on_exit (SunOS) pthread_continue (XPG2) pthread_getsequence_np (Tru64) pthread_suspend (XPG2) pututline (XPG2) putw (SVID) rindex (SUSv3) scalb (SUSv3) setutent (XPG2) sys_errlist (BSD) sys_nerr (BSD) ttyslot (SUSv2) ualarm (SUSv3) usleep (SUSv3) utmpname (XPG2) vfork (SUSv3) (see chapter "Implementation Notes") NOT implemented system interfaces from the Single Unix Specification, Volume 4: acoshl acosl aio_cancel aio_error aio_fsync aio_read aio_return aio_suspend aio_write asinhl asinl atan2l atanhl atanl bsd_signal cabsl cacos cacosf cacosh cacoshf cacoshl cacosl carg cargf cargl casin casinf casinh casinhf casinhl casinl catan catanf catanh catanhf catanhl catanl cbrtl ccos ccosf ccosh ccoshf ccoshl ccosl ceill cexp cexpf cexpl cimag cimagf cimagl clock_getcpuclockid clog clogf clogl conj conjf conjl copysignl coshl cosl cpow cpowf cpowl cproj cprojf cprojl creal crealf creall csin csinf csinh csinhf csinhl csinl csqrt csqrtf csqrtl ctan ctanf ctanh ctanhf ctanhl ctanl duplocale endnetent erfcl erfl exp2l expl expm1l fabsl fattach fdiml feclearexcept fegetenv fegetexceptflag fegetround feholdexcept feraiseexcept fesetenv fesetexceptflag fesetround fetestexcept feupdateenv fexecve floorl fmal fmaxl fminl fmodl fmtmsg freelocale frexpl getdate getdate_err gethostent getmsg getnetbyaddr getnetbyname getnetent getpmsg hypotl ilogbl initstate isalnum_l isalpha_l isastream isblank_l iscntrl_l isdigit_l isgraph_l islower_l isprint_l ispunct_l isspace_l isupper_l iswalnum_l iswalpha_l iswblank_l iswcntrl_l iswdigit_l iswgraph_l iswlower_l iswprint_l iswpunct_l iswspace_l iswupper_l iswxdigit_l isxdigit_l ldexpl lgammal lio_listio llround llroundf llroundl log10l log1pl log2l logbl logl lroundl mlockall modfl munlockall nanl nearbyintl newlocale nextafterl nexttowardl posix_mem_offset posix_spawn[...] posix_trace[...] posix_typed_[...] powl psiginfo psignal pthread_attr_getguardsize pthread_attr_getstack pthread_attr_getstackaddr pthread_attr_setguardsize pthread_attr_setstack pthread_attr_setstackaddr pthread_barrier[...] pthread_condattr_getclock pthread_condattr_setclock pthread_getcpuclockid pthread_mutexattr_getrobust pthread_mutexattr_setrobust pthread_mutex_consistent pthread_mutex_timedlock pthread_rwlock_timedrdlock pthread_rwlock_timedwrlock pthread_setschedprio pthread_spin_[...] putmsg reminderl remquol roundl scalblnl scalbnl setcontext setnetent sigaltstack sigtimedwait sinhl sinl sockatmark sqrtl strcasecmp_l strcoll_l strfmon strfmon_l strncasecmp_l strtold strxfrm_l swabcontext tanhl tanl tcgetsid tgammal timer_getoverrun tolower_l toupper_l towctrans_l truncl ulimit uselocale waitid wcscasecmp_l wcsncasecmp_l wcstold wcsxfrm_l wctrans_l wctype_l Implementation Notes chroot only emulates a chroot function call by keeping track of the current root and accomodating this in the file related function calls. A real chroot functionality is not supported by Windows however. clock_getres, clock_gettime and clock_setres only support CLOCK_REALTIME for now. BSD file locks created via flock are not propagated to the parent process and sibling processes. The locks are only valid in the creating process and subsequently started child processes shaing the same file descriptor. fpclassify, isfinite, isgreater, isgreaterequal, isinf, isless, islessequal, islessgreater, isnan, isnormal, isunordered, and signbit only support float and double arguments, not long double arguments. getitimer and setitimer only support ITIMER_REAL for now. link will copy the file if it can't implement a true hardlink. This is true at least for FAT and FAT32 filesystems. NTFS supports hardlinks. lseek only works properly on binary files. setuid is only safe against reverting the user switch after a call to one of the exec(2) functions took place. Windows doesn't support a non-revertable user switch within the context of Win32 processes. vfork just calls fork. vhangup always returns -1 and sets errno to ENOSYS. The XSI IPC functions semctl, semget, semop, shmat, shmctl, shmdt, shmget, msgctl, msgget, msgrcv and msgsnd are only available when cygserver is running.