diff options
Diffstat (limited to 'winsup/cygwin/posix.sgml')
-rw-r--r-- | winsup/cygwin/posix.sgml | 1564 |
1 files changed, 1564 insertions, 0 deletions
diff --git a/winsup/cygwin/posix.sgml b/winsup/cygwin/posix.sgml new file mode 100644 index 000000000..e8c97d601 --- /dev/null +++ b/winsup/cygwin/posix.sgml @@ -0,0 +1,1564 @@ +<sect1 id="std-susv4"><title>System interfaces compatible with the Single Unix Specification, Version 4:</title> + +<para>Note that the core of the Single Unix Specification, Version 4 is +also IEEE Std 1003.1-2008 (POSIX.1-2008).</para> + +<screen> + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 +</screen> + +</sect1> + +<sect1 id="std-bsd"><title>System interfaces compatible with BSD functions:</title> + +<screen> + __b64_ntop + __b64_pton + arc4random + arc4random_addrandom + arc4random_buf + arc4random_stir + arc4random_uniform + bindresvport + bindresvport_sa + cfmakeraw + cfsetspeed + daemon + dn_comp + dn_expand + dn_skipname + drem + eaccess + endusershell + err + errx + finite + finitef + fiprintf + flock (see chapter "Implementation Notes") + forkpty + fpurge + freeifaddrs + fstatfs + fts_children + fts_close + fts_get_clientptr + fts_get_stream + fts_open + fts_read + fts_set + fts_set_clientptr + funopen + futimes + 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 + login + login_tty + logout + logwtmp + madvise + 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 +</screen> + +</sect1> + +<sect1 id="std-gnu"><title>System interfaces compatible with GNU or Linux extensions:</title> + +<screen> + 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 + 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 + fgetxattr + flistxattr + fopencookie + 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 + getxattr + lgetxattr + listxattr + llistxattr + lremovexattr + lsetxattr + memmem + mempcpy + memrchr + mkostemp + mkostemps + pipe2 + pow10 + pow10f + ppoll + pthread_getattr_np + pthread_sigqueue + ptsname_r + quotactl + rawmemchr + removexattr + scandirat + setxattr + strchrnul + sysinfo + tdestroy + timegm + timelocal + updwtmpx + utmpxname + vasnprintf + vasprintf + vasprintf_r +</screen> + +</sect1> + +<sect1 id="std-solaris"><title>System interfaces compatible with Solaris or SunOS functions:</title> + +<screen> + __fpurge + acl + aclcheck + aclfrommode + aclfrompbits + aclfromtext + aclsort + acltomode + acltopbits + acltotext + endmntent + facl + futimesat + getmntent + memalign + setmntent + xdr_array + xdr_bool + xdr_bytes + xdr_char + xdr_double + xdr_enum + xdr_float + xdr_free + xdr_hyper + xdr_int + xdr_int16_t + xdr_int32_t + xdr_int64_t + xdr_int8_t + xdr_long + xdr_longlong_t + xdr_netobj + xdr_opaque + xdr_pointer + xdr_reference + xdr_short + xdr_sizeof + xdr_string + xdr_u_char + xdr_u_hyper + xdr_u_int + xdr_u_int16_t + xdr_u_int32_t + xdr_u_int64_t + xdr_u_int8_t + xdr_u_long + xdr_u_longlong_t + xdr_u_short + xdr_uint16_t + xdr_uint32_t + xdr_uint64_t + xdr_uint8_t + xdr_union + xdr_vector + xdr_void + xdr_wrapstring + xdrmem_create + xdrrec_create + xdrrec_endofrecord + xdrrec_eof + xdrrec_skiprecord + __xdrrec_getrec + __xdrrec_setnonblock + xdrstdio_create +</screen> + +</sect1> + +<sect1 id="std-deprec"><title>Other UNIX system interfaces, deprecated or not in POSIX.1-2008:</title> + +<screen> + 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) + 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_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) + setutent (XPG2) + stime (SVID) + sys_errlist (BSD) + sys_nerr (BSD) + sys_siglist (BSD) + ttyslot (SUSv2) + ualarm (SUSv3) + usleep (SUSv3) + utmpname (XPG2) + vfork (SUSv3) (see chapter "Implementation Notes") +</screen> + +</sect1> + +<sect1 id="std-notimpl"><title>NOT implemented system interfaces from the Single Unix Specification, Volume 4:</title> + +<screen> + acoshl + acosl + aio_cancel + aio_error + aio_fsync + aio_read + aio_return + aio_suspend + aio_write + asinhl + asinl + atan2l + atanhl + atanl + cabsl + cacoshl + cacosl + cargl + casinl + catanhl + catanl + cbrtl + ccoshl + ccosl + ceill + cexpl + cimagl + clogl + conjl + copysignl + coshl + cosl + cpowl + cprojl + creall + 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 + hypotl + 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 + sigaltstack + sigtimedwait + sinhl + sinl + sockatmark + sqrtl + 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 + wcstold + wcsxfrm_l + wctrans_l + wctype_l +</screen> + +</sect1> + +<sect1 id="std-notes"><title>Implementation Notes</title> + +<para><function>chroot</function> 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.</para> + +<para><function>clock_nanosleep</function> currently supports only +CLOCK_REALTIME and CLOCK_MONOTONIC. <function>clock_setres</function>, +<function>clock_settime</function>, and <function>timer_create</function> +currently support only CLOCK_REALTIME.</para> + +<para>POSIX file locks via <function>fcntl</function> or +<function>lockf</function>, as well as BSD <function>flock</function> 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.</para> + +<para>BSD file locks created via <function>flock</function> 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.</para> + +<para>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 + +<screen> + fcntl (fd, F_LCK_MANDATORY, 1); +</screen> + +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 <function>execve</function>; +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. +</para> + +<para><function>fpclassify</function>, <function>isfinite</function>, +<function>isgreater</function>, <function>isgreaterequal</function>, +<function>isinf</function>, <function>isless</function>, +<function>islessequal</function>, <function>islessgreater</function>, +<function>isnan</function>, <function>isnormal</function>, +<function>isunordered</function>, and <function>signbit</function> +only support float and double arguments, not long double arguments.</para> + +<para><function>getitimer</function> and <function>setitimer</function> +only support ITIMER_REAL for now.</para> + +<para><function>link</function> will fail on FAT, FAT32, and other filesystems +not supporting hardlinks, just as on Linux.</para> + +<para><function>lseek</function> 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.</para> + +<para><function>setuid</function> 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.</para> + +<para><function>vfork</function> just calls <function>fork</function>.</para> + +<para><function>vhangup</function> and <function>revoke</function> always +return -1 and set errno to ENOSYS. <function>grantpt</function> and +<function>unlockpt</function> always just return 0.</para> + +<para>The XSI IPC functions <function>semctl</function>, +<function>semget</function>, <function>semop</function>, +<function>shmat</function>, <function>shmctl</function>, +<function>shmdt</function>, <function>shmget</function>, +<function>msgctl</function>, <function>msgget</function>, +<function>msgrcv</function> and <function>msgsnd</function> are only +available when cygserver is running.</para> + +<para>The Linux-specific function <function>quotactl</function> only implements +what works on Windows: Windows only supports user block quotas on NTFS, no +group quotas, no inode quotas, no time constraints.</para> + +</sect1> |