gno/NOTES/deviations

77 lines
2.6 KiB
Plaintext

$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: <sys/types.h>, <sys/ansi.h>
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