$Id: deviations,v 1.1 1997/02/28 05:42:26 gdr Exp $ These are deviations from POSIX 1003.1: ====================================== Feature: full implementation Header: (various) Not all functions and system calls specified by POSIX 1003.1 are implemented. Feature: non-compliant limits/constants Header: (various) Value POSIX GNO Header File ------------------------------------------------------------------- STDIN_FILENO 0 1 unistd.h STDOUT_FILENO 1 2 unistd.h STDERR_FILENO 2 3 unistd.h _POSIX_LINK_MAX 8 1 limits.h Feature: alarm(2) Header: unistd.h POSIX specifies that both the single argument and return type should be unsigned int. GNO uses unsigned long for both. Feature: fork(2) Header: unistd.h POSIX specifies an empty argument list, and both child and parent process resume execution at the point where fork() returns but in different address spaces. The GNO implementation takes a pointer to a function at which the child process begins execution, and child and parent share the address space. Feature: getpgrp(2) Header: unistd.h POSIX specifies a pid_t return type. GNO implementation returns an int. These are deviations from the BSD implementations: ================================================= Feature: POSIX compliance Header: sys/unistd.h BSD is POSIX2 compliant, GNO is not. (_POSIX2_VERSION is undefined) Feature: vfork(2) Header: unistd.h See the notes on fork(2) in the section on POSIX deviations. Feature: machine types Header: , BSD uses "long long" and "unsigned long long" for quad_t and u_quad_t, respectively. GNO uses structures. Type BSD GNO Header File ------------------------------------------------------------------------------- quad_t long long (structure) sys/types.h u_quad_t unsigned long long (structure) sys/types.h pid_t long short sys/types.h off_t quad_t long sys/types.h dev_t unsigned long unsigned short sys/types.h uid_t unsigned long unsigned short sys/types.h gid_t unsigned long unsigned short sys/types.h _BSD_PTRDIFF_T_ int long machine/ansi.h _BSD_SIZE_T_ unsigned int unsigned long machine/ansi.h _BSD_SSIZE_T_ int long machine/ansi.h _BSD_OFF_T_ long long long machine/ansi.h _BSD_PID_T_ long short machine/ansi.h _BSD_WCHAR_T_ int long machine/ansi.h _BSD_RUNE_T_ int long machine/ansi.h Value BSD GNO Header File ------------------------------------------------------------------------------- _BSD_CLK_TCK_ 128 60 machine/ansi.h _BSD_CLOCKS_PER_SEC_ 128 60 machine/ansi.h LINK_MAX 32767 1 sys/syslimits.h