# Compatibility

## 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			(see chapter "Implementation Notes")
        bind
        bsearch
        btowc
        cabs
        cabsf
        cabsl
        cacos
        cacosf
        cacosh
        cacoshf
        calloc
        carg
        cargf
        casin
        casinf
        casinh
        casinhf
        casinhl
        catan
        catanf
        catanh
        catanhf
        catclose 			(available in external "catgets" library)
        catgets  			(available in external "catgets" library)
        catopen  			(available in external "catgets" library)
        cbrt
        cbrtf
        ccos
        ccosf
        ccosh
        ccoshf
        ceil
        ceilf
        cexp
        cexpf
        cfgetispeed
        cfgetospeed
        cfsetispeed
        cfsetospeed
        chdir
        chmod
        chown
        cimag
        cimagf
        cimagl
        clearerr
        clock
        clock_getcpuclockid
        clock_getres
        clock_gettime
        clock_nanosleep		(see chapter "Implementation Notes")
        clock_settime		(see chapter "Implementation Notes")
        clog
        clogf
        close
        closedir
        closelog
        confstr
        conj
        conjf
        connect
        copysign
        copysignf
        cos
        cosf
        cosh
        coshf
        cpow
        cpowf
        cproj
        cprojf
        creal
        crealf
        creall
        creat
        crypt			(available in external "crypt" library)
        csin
        csinf
        csinh
        csinhf
        csqrt
        csqrtf
        ctan
        ctanf
        ctanh
        ctanhf
        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			(see chapter "Implementation Notes")
        fdatasync
        fdim
        fdimf
        fdopen
        fdopendir
        feclearexcept
        fegetenv
        fegetexceptflag
        fegetround
        feholdexcept
        feof
        feraiseexcept
        ferror
        fesetenv
        fesetexceptflag
        fesetround
        fetestexcept
        feupdateenv
        fexecve
        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
        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
        htonl
        htons
        hypot
        hypotf
        hypotl
        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
        llround
        llroundf
        localeconv
        localtime
        localtime_r
        lockf			(see chapter "Implementation Notes")
        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
        posix_spawn
        posix_spawnattr_destroy
        posix_spawnattr_init
        posix_spawnattr_getflags
        posix_spawnattr_getpgroup
        posix_spawnattr_getschedparam
        posix_spawnattr_getschedpolicy
        posix_spawnattr_getsigdefault
        posix_spawnattr_getsigmask
        posix_spawnattr_setflags
        posix_spawnattr_setpgroup
        posix_spawnattr_setschedparam
        posix_spawnattr_setschedpolicy
        posix_spawnattr_setsigdefault
        posix_spawnattr_setsigmask
        posix_spawnp
        posix_spawn_file_actions_destroy
        posix_spawn_file_actions_init
        posix_spawn_file_actions_addclose
        posix_spawn_file_actions_adddup2
        posix_spawn_file_actions_addopen
        pow
        powf
        pread
        printf
        pselect
        psiginfo
        psignal
        pthread_atfork
        pthread_attr_destroy
        pthread_attr_getdetachstate
        pthread_attr_getguardsize
        pthread_attr_getinheritsched
        pthread_attr_getschedparam
        pthread_attr_getschedpolicy
        pthread_attr_getscope
        pthread_attr_getstack
        pthread_attr_getstacksize
        pthread_attr_init
        pthread_attr_setdetachstate
        pthread_attr_setguardsize
        pthread_attr_setinheritsched
        pthread_attr_setschedparam
        pthread_attr_setschedpolicy
        pthread_attr_setscope
        pthread_attr_setstack
        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_getclock
        pthread_condattr_getpshared
        pthread_condattr_init
        pthread_condattr_setclock
        pthread_condattr_setpshared
        pthread_create
        pthread_detach
        pthread_equal
        pthread_exit
        pthread_getconcurrency
        pthread_getcpuclockid
        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_setschedprio
        pthread_setspecific
        pthread_sigmask
        pthread_spin_destroy
        pthread_spin_init
        pthread_spin_lock
        pthread_spin_trylock
        pthread_spin_unlock
        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
        sigaltstack
        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
        sockatmark
        socket
        socketpair
        sprintf
        sqrt
        sqrtf
        sqrtl
        srand
        srand48
        srandom
        sscanf
        stat
        statvfs
        stderr
        stdin
        stdout
        stpcpy
        stpncpy
        strcasecmp
        strcat
        strchr
        strcmp
        strcoll
        strcpy
        strcspn
        strdup
        strerror
        strerror_r
        strfmon
        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		(see chapter "Implementation Notes")
        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
        wcstold
        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:

        __b64_ntop
        __b64_pton
        arc4random
        arc4random_addrandom
        arc4random_buf
        arc4random_stir
        arc4random_uniform
        bindresvport
        bindresvport_sa
        cfmakeraw
        cfsetspeed
        clearerr_unlocked
        daemon
        dn_comp
        dn_expand
        dn_skipname
        drem
        eaccess
        endusershell
        err
        errx
        feof_unlocked
        ferror_unlocked
        fflush_unlocked
        fileno_unlocked
        fgetc_unlocked
        finite
        finitef
        finitel
        fiprintf
        flock			(see chapter "Implementation Notes")
        forkpty
        fpurge
        fputc_unlocked
        fread_unlocked
        freeifaddrs
        fstatfs
        fts_children
        fts_close
        fts_get_clientptr
        fts_get_stream
        fts_open
        fts_read
        fts_set
        fts_set_clientptr
        funopen
        futimes
        fwrite_unlocked
        gamma
        gamma_r
        gammaf
        gammaf_r
        getdtablesize
        getgrouplist
        getifaddrs
        getpagesize
        getpeereid
        getprogname
        getusershell
        herror
        hstrerror
        inet_aton
        inet_makeaddr
        inet_netof
        inet_network
        initgroups
        iruserok
        iruserok_sa
        issetugid
        login
        login_tty
        logout
        logwtmp
        madvise
        mkstemps
        openpty
        qsort_r			(see chapter "Implementation Notes")
        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
        rpmatch
        rresvport
        rresvport_af
        ruserok
        sbrk
        setbuffer
        setgroups
        sethostname
        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:

        __mempcpy
        accept4
        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
        basename			(see chapter "Implementation Notes")
        canonicalize_file_name
        dremf
        dup3
        envz_add
        envz_entry
        envz_get
        envz_merge
        envz_remove
        envz_strip
        error
        error_at_line
        euidaccess
        execvpe
        exp10
        exp10f
        fcloseall
        fcloseall_r
        fegetprec
        fesetprec
        feenableexcept
        fedisableexcept
        fegetexcept
        ffsl
        ffsll
        fgets_unlocked
        fgetwc_unlocked
        fgetws_unlocked
        fgetxattr
        flistxattr
        fopencookie
        fputs_unlocked
        fputwc_unlocked
        fputws_unlocked
        fremovexattr
        fsetxattr
        get_avphys_pages
        get_current_dir_name
        get_phys_pages
        get_nprocs
        get_nprocs_conf
        getmntent_r
        getopt_long
        getopt_long_only
        getpt
        getwc_unlocked
        getwchar_unlocked
        getxattr
        lgetxattr
        listxattr
        llistxattr
        lremovexattr
        lsetxattr
        memmem
        mempcpy
        memrchr
        mkostemp
        mkostemps
        pipe2
        pow10
        pow10f
        ppoll
        pthread_getattr_np
        pthread_sigqueue
        ptsname_r
        putwc_unlocked
        putwchar_unlocked
        qsort_r			(see chapter "Implementation Notes")
        quotactl
        rawmemchr
        removexattr
        scandirat
        setxattr
        strchrnul
        sysinfo
        tdestroy
        timegm
        timelocal
        updwtmpx
        utmpxname
        vasnprintf
        vasprintf
        vasprintf_r

## System interfaces compatible with Solaris or SunOS functions:

        __fbufsize
        __flbf
        __fpending
        __fpurge
        __freadable
        __freading
        __fsetlocking
        __fwritable
        __fwriting
        acl
        aclcheck
        aclfrommode
        aclfrompbits
        aclfromtext
        aclsort
        acltomode
        acltopbits
        acltotext
        endmntent
        facl
        futimesat
        getmntent
        memalign
        setmntent
        xdr_array			(available in external "libtirpc" library)
        xdr_bool			(available in external "libtirpc" library)
        xdr_bytes			(available in external "libtirpc" library)
        xdr_char			(available in external "libtirpc" library)
        xdr_double			(available in external "libtirpc" library)
        xdr_enum			(available in external "libtirpc" library)
        xdr_float			(available in external "libtirpc" library)
        xdr_free			(available in external "libtirpc" library)
        xdr_hyper			(available in external "libtirpc" library)
        xdr_int			(available in external "libtirpc" library)
        xdr_int16_t			(available in external "libtirpc" library)
        xdr_int32_t			(available in external "libtirpc" library)
        xdr_int64_t			(available in external "libtirpc" library)
        xdr_int8_t			(available in external "libtirpc" library)
        xdr_long			(available in external "libtirpc" library)
        xdr_longlong_t		(available in external "libtirpc" library)
        xdr_netobj			(available in external "libtirpc" library)
        xdr_opaque			(available in external "libtirpc" library)
        xdr_pointer			(available in external "libtirpc" library)
        xdr_reference		(available in external "libtirpc" library)
        xdr_short			(available in external "libtirpc" library)
        xdr_sizeof			(available in external "libtirpc" library)
        xdr_string			(available in external "libtirpc" library)
        xdr_u_char			(available in external "libtirpc" library)
        xdr_u_hyper			(available in external "libtirpc" library)
        xdr_u_int			(available in external "libtirpc" library)
        xdr_u_int16_t		(available in external "libtirpc" library)
        xdr_u_int32_t		(available in external "libtirpc" library)
        xdr_u_int64_t		(available in external "libtirpc" library)
        xdr_u_int8_t		(available in external "libtirpc" library)
        xdr_u_long			(available in external "libtirpc" library)
        xdr_u_longlong_t		(available in external "libtirpc" library)
        xdr_u_short			(available in external "libtirpc" library)
        xdr_uint16_t		(available in external "libtirpc" library)
        xdr_uint32_t		(available in external "libtirpc" library)
        xdr_uint64_t		(available in external "libtirpc" library)
        xdr_uint8_t			(available in external "libtirpc" library)
        xdr_union			(available in external "libtirpc" library)
        xdr_vector			(available in external "libtirpc" library)
        xdr_void			(available in external "libtirpc" library)
        xdr_wrapstring		(available in external "libtirpc" library)
        xdrmem_create		(available in external "libtirpc" library)
        xdrrec_create		(available in external "libtirpc" library)
        xdrrec_endofrecord		(available in external "libtirpc" library)
        xdrrec_eof			(available in external "libtirpc" library)
        xdrrec_skiprecord		(available in external "libtirpc" library)
        __xdrrec_getrec		(available in external "libtirpc" library)
        __xdrrec_setnonblock	(available in external "libtirpc" library)
        xdrstdio_create		(available in external "libtirpc" library)

### System interfaces not in POSIX but compatible with ISO C requirements:

        aligned_alloc		(ISO C11)
        at_quick_exit		(ISO C11)
        quick_exit			(ISO C11)

## Other UNIX system interfaces, not in POSIX.1-2008 or deprecated:

        bcmp			(POSIX.1-2001, SUSv3)
        bcopy			(SUSv3)
        bzero			(SUSv3)
        chroot			(SUSv2) (see chapter "Implementation Notes")
        clock_setres		(QNX, VxWorks) (see chapter "Implementation Notes")
        cuserid			(POSIX.1-1988, SUSv2)
        ecvt			(SUSv3)
        endutent			(XPG2)
        fcvt			(SUSv3)
        ftime			(SUSv3)
        gcvt			(SUSv3)
        getcontext			(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)
        makecontext			(SUSv3)
        mallinfo			(SVID)
        mallopt			(SVID)
        mktemp			(SUSv3)
        on_exit			(SunOS)
        pthread_attr_getstackaddr	(SUSv3)
        pthread_attr_setstackaddr	(SUSv3)
        pthread_continue		(XPG2)
        pthread_getsequence_np	(Tru64)
        pthread_suspend		(XPG2)
        pthread_yield		(POSIX.1c drafts)
        pututline			(XPG2)
        putw			(SVID)
        rindex			(SUSv3)
        scalb			(SUSv3)
        setcontext			(SUSv3)
        setutent			(XPG2)
        stime			(SVID)
        swapcontext			(SUSv3)
        sys_errlist			(BSD)
        sys_nerr			(BSD)
        sys_siglist			(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
        cacoshl
        cacosl
        cargl
        casinl
        catanhl
        catanl
        cbrtl
        ccoshl
        ccosl
        ceill
        cexpl
        clogl
        conjl
        copysignl
        coshl
        cosl
        cpowl
        cprojl
        csinhl
        csinl
        csqrtl
        ctanhl
        ctanl
        duplocale
        endnetent
        erfcl
        erfl
        exp2l
        expl
        expm1l
        fabsl
        fattach
        fdiml
        floorl
        fmal
        fmaxl
        fminl
        fmodl
        fmtmsg
        freelocale
        frexpl
        getdate
        getdate_err
        gethostent
        getmsg
        getnetbyaddr
        getnetbyname
        getnetent
        getpmsg
        ilogbl
        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
        llroundl
        log10l
        log1pl
        log2l
        logbl
        logl
        lroundl
        mlockall
        modfl
        munlockall
        nanl
        nearbyintl
        newlocale
        nextafterl
        nexttoward
        nexttowardf
        nexttowardl
        posix_mem_offset
        posix_trace[...]
        posix_typed_[...]
        powl
        pthread_barrier[...]
        pthread_mutexattr_getrobust
        pthread_mutexattr_setrobust
        pthread_mutex_consistent
        pthread_mutex_timedlock
        pthread_rwlock_timedrdlock
        pthread_rwlock_timedwrlock
        putmsg
        reminderl
        remquol
        roundl
        scalblnl
        scalbnl
        setnetent
        sigtimedwait
        sinhl
        sinl
        strcasecmp_l
        strcoll_l
        strfmon_l
        strncasecmp_l
        strtold
        strxfrm_l
        tanhl
        tanl
        tcgetsid
        tgammal
        timer_getoverrun
        tolower_l
        toupper_l
        towctrans_l
        truncl
        ulimit
        uselocale
        waitid
        wcscasecmp_l
        wcsncasecmp_l
        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_nanosleep` currently supports only CLOCK_REALTIME and CLOCK_MONOTONIC. `clock_setres`, `clock_settime`, and `timer_create` currently support only CLOCK_REALTIME.

POSIX file locks via `fcntl` or `lockf`, as well as BSD `flock` locks are advisory locks. They don't interact with Windows mandatory locks, nor do POSIX fcntl locks interfere with BSD flock locks or vice versa.

BSD file locks created via `flock` are only propagated to the direct parent process, not to grand parents or sibling processes. The locks are only valid in the creating process, its parent process, and subsequently started child processes sharing the same file descriptor.

In very rare circumstances an application would want to use Windows mandatory locks to interact with non-Cygwin Windows processes accessing the same file (databases, etc). For these purposes, the entire locking mechanism (fcntl/flock/lockf) can be switched to Windows mandatory locks on a per-descriptor/per-process basis. For this purpose, use the call

      fcntl (fd, F_LCK_MANDATORY, 1);

After that, all file locks on this descriptor will follow Windows mandatory record locking semantics: Locks are per-descriptor/per-process; locks are not propagated to child processes, not even via `execve`; no atomic replacement of read locks with write locks and vice versa on the same descriptor; locks have to be unlocked exactly as they have been locked.

`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 fail on FAT, FAT32, and other filesystems not supporting hardlinks, just as on Linux.

`lseek` only works properly on files opened in binary mode. On files opened in textmode (via mount mode or explicit open flag) its positioning is potentially unreliable.

`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` and `revoke` always return -1 and set errno to ENOSYS. `grantpt` and `unlockpt` always just return 0.

The XSI IPC functions `semctl`, `semget`, `semop`, `shmat`, `shmctl`, `shmdt`, `shmget`, `msgctl`, `msgget`, `msgrcv` and `msgsnd` are only available when cygserver is running.

The Linux-specific function `quotactl` only implements what works on Windows: Windows only supports user block quotas on NTFS, no group quotas, no inode quotas, no time constraints.

`qsort_r` is available in both BSD and GNU flavors, depending on whether _BSD_SOURCE or _GNU_SOURCE is defined when compiling.

`basename` is available in both POSIX and GNU flavors, depending on whether libgen.h is included or not.