#ifndef ISO
optional-constant _POSIX_VERSION
optional-constant _POSIX2_C_VERSION
optional-constant _XOPEN_VERSION
optional-constant _XOPEN_XCU_VERSION

optional-constant _POSIX2_C_BIND
optional-constant _POSIX2_CHAR_TERM
optional-constant _POSIX2_LOCALEDEF
optional-constant _POSIX2_UPE
optional-constant _POSIX2_VERSION

optional-constant _XOPEN_XPG2
optional-constant _XOPEN_XPG3
optional-constant _XOPEN_XPG4
optional-constant _XOPEN_UNIX

optional-constant _POSIX_ADVISORY_INFO
optional-constant _POSIX_ASYNCHRONOUS_IO
optional-constant _POSIX_BARRIERS
optional-constant _POSIX_CHOWN_RESTRICTED
optional-constant _POSIX_CLOCK_SELECTION
optional-constant _POSIX_CPUTIME
optional-constant _POSIX_NO_TRUNC
optional-constant _POSIX_VDISABLE
optional-constant _POSIX_SAVED_IDS
optional-constant _POSIX_JOB_CONTROL
optional-constant _POSIX_MONOTONIC_CLOCK
optional-constant _POSIX_READER_WRITER_LOCKS
optional-constant _POSIX_SHELL
optional-constant _POSIX_SPAWN
optional-constant _POSIX_SPIN_LOCKS
optional-constant _POSIX_SPORADIC_SERVER
optional-constant _POSIX_THREAD_CPUTIME
optional-constant _POSIX_TYPED_MEMORY_OBJECTS

optional-constant _POSIX_THREADS
optional-constant _POSIX_THREAD_ATTR_STACKADDR
optional-constant _POSIX_THREAD_ATTR_STACKSIZE
optional-constant _POSIX_THREAD_PROCESS_SHARED
optional-constant _POSIX_THREAD_SAFE_FUNCTIONS
optional-constant _POSIX_THREAD_SPORADIC_SERVER

# ifdef XOPEN2K
optional-constant _POSIX_V6_ILP32_OFF32
optional-constant _POSIX_V6_ILP32_OFFBIG
optional-constant _POSIX_V6_LP64_OFF64
optional-constant _POSIX_V6_LPBIG_OFFBIG
# endif
# if defined XOPEN2K8 || defined POSIX2008
optional-constant _POSIX_V7_ILP32_OFF32
optional-constant _POSIX_V7_ILP32_OFFBIG
optional-constant _POSIX_V7_LP64_OFF64
optional-constant _POSIX_V7_LPBIG_OFFBIG
# endif

optional-constant _POSIX2_C_DEV
optional-constant _POSIX2_FORT_DEV
optional-constant _POSIX2_FORT_RUN
optional-constant _POSIX2_SW_DEV
# if !defined POSIX && !defined POSIX2008
optional-constant _XOPEN_CRYPT
optional-constant _XOPEN_ENH_I18N
optional-constant _XOPEN_LEGACY
optional-constant _XOPEN_REALTIME
optional-constant _XOPEN_REALTIME_THREADS
optional-constant _XOPEN_SHM
optional-constant _XOPEN_STREAMS
# endif
allow _XBS5_ILP32_OFF32
allow _XBS5_ILP32_OFBIG
allow _XBS5_LP64_OFF64
allow _XBS5_LPBIG_OFFBIG
optional-constant _POSIX_ASYNCHRONOUS_IO
optional-constant _POSIX_MEMLOCK
optional-constant _POSIX_MEMLOCK_RANGE
optional-constant _POSIX_MESSAGE_PASSING
optional-constant _POSIX_PRIORITY_SCHEDULING
optional-constant _POSIX_REALTIME_SIGNALS
optional-constant _POSIX_SEMAPHORES
optional-constant _POSIX_SHARED_MEMORY_OBJECTS
optional-constant _POSIX_SYNCHRONIZED_IO
optional-constant _POSIX_TIMERS
optional-constant _POSIX_TIMEOUTS

optional-constant _POSIX_FSYNC
optional-constant _POSIX_MAPPED_FILES
optional-constant _POSIX_MEMORY_PROTECTION

optional-constant _POSIX_PRIORITIZED_IO

optional-constant _POSIX_THREAD_PRIORITY_SCHEDULING
optional-constant _POSIX_THREAD_PRIO_INHERIT
optional-constant _POSIX_THREAD_PRIO_PROTECT

optional-constant _POSIX_ASYNC_IO
optional-constant _POSIX_PRIO_IO
optional-constant _POSIX_SYNC_IO

optional-constant _POSIX2_PBS
optional-constant _POSIX2_PBS_ACCOUNTING
optional-constant _POSIX2_PBS_CHECKPOINT
optional-constant _POSIX2_PBS_LOCATE
optional-constant _POSIX2_PBS_MESSAGE
optional-constant _POSIX2_PBS_TRACK

optional-constant _POSIX_TIMESTAMP_RESOLUTION

constant NULL

constant R_OK
constant W_OK
constant X_OK
constant F_OK

constant _CS_PATH
constant _CS_XBS5_ILP32_OFF32_CFLAGS
constant _CS_XBS5_ILP32_OFF32_LDFLAGS
constant _CS_XBS5_ILP32_OFF32_LIBS
constant _CS_XBS5_ILP32_OFF32_LINTFLAGS
constant _CS_XBS5_ILP32_OFFBIG_CFLAGS
constant _CS_XBS5_ILP32_OFFBIG_LDFLAGS
constant _CS_XBS5_ILP32_OFFBIG_LIBS
constant _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
constant _CS_XBS5_LP64_OFF64_CFLAGS
constant _CS_XBS5_LP64_OFF64_LDFLAGS
constant _CS_XBS5_LP64_OFF64_LIBS
constant _CS_XBS5_LP64_OFF64_LINTFLAGS
constant _CS_XBS5_LPBIG_OFFBIG_CFLAGS
constant _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
constant _CS_XBS5_LPBIG_OFFBIG_LIBS
constant _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS

constant SEEK_SET
constant SEEK_CUR
constant SEEK_END

constant _SC_2_C_BIND
constant _SC_2_C_DEV
constant _SC_2_C_VERSION
constant _SC_2_FORT_DEV
constant _SC_2_FORT_RUN
constant _SC_2_LOCALEDEF
constant _SC_2_PBS
constant _SC_2_PBS_ACCOUNTING
constant _SC_2_PBS_CHECKPOINT
constant _SC_2_PBS_LOCATE
constant _SC_2_PBS_MESSAGE
constant _SC_2_PBS_TRACK
constant _SC_2_SW_DEV
constant _SC_2_UPE
constant _SC_2_VERSION
constant _SC_ARG_MAX
constant _SC_AIO_LISTIO_MAX
constant _SC_AIO_MAX
constant _SC_AIO_PRIO_DELTA_MAX
constant _SC_ASYNCHRONOUS_IO
constant _SC_ATEXIT_MAX
constant _SC_BARRIERS
constant _SC_BASE
constant _SC_BC_BASE_MAX
constant _SC_BC_DIM_MAX
constant _SC_BC_SCALE_MAX
constant _SC_BC_STRING_MAX
constant _SC_CHILD_MAX
constant _SC_CLK_TCK
constant _SC_CLOCK_SELECTION
constant _SC_COLL_WEIGHTS_MAX
constant _SC_DELAYTIMER_MAX
constant _SC_DEVICE_IO
constant _SC_DEVICE_SPECIFIC
constant _SC_DEVICE_SPECIFIC_R
constant _SC_EXPR_NEST_MAX
constant _SC_FD_MGMT
constant _SC_FIFO
constant _SC_FILE_ATTRIBUTES
constant _SC_FILE_LOCKING
constant _SC_FILE_SYSTEM
constant _SC_FSYNC
constant _SC_GETGR_R_SIZE_MAX
constant _SC_GETPW_R_SIZE_MAX
constant _SC_IOV_MAX
constant _SC_JOB_CONTROL
constant _SC_LINE_MAX
constant _SC_LOGIN_NAME_MAX
constant _SC_MAPPED_FILES
constant _SC_MEMLOCK
constant _SC_MEMLOCK_RANGE
constant _SC_MEMORY_PROTECTION
constant _SC_MESSAGE_PASSING
constant _SC_MONOTONIC_CLOCK
constant _SC_MQ_OPEN_MAX
constant _SC_MQ_PRIO_MAX
constant _SC_NETWORKING
constant _SC_NGROUPS_MAX
constant _SC_OPEN_MAX
constant _SC_PAGESIZE
constant _SC_PAGE_SIZE
constant _SC_PASS_MAX
constant _SC_PIPE
constant _SC_PRIORITIZED_IO
constant _SC_PRIORITY_SCHEDULING
constant _SC_RE_DUP_MAX
constant _SC_READER_WRITER_LOCKS
constant _SC_REALTIME_SIGNALS
constant _SC_REGEXP
constant _SC_RTSIG_MAX
constant _SC_SAVED_IDS
constant _SC_SEMAPHORES
constant _SC_SEM_NSEMS_MAX
constant _SC_SEM_VALUE_MAX
constant _SC_SHARED_MEMORY_OBJECTS
constant _SC_SHELL
constant _SC_SIGNALS
constant _SC_SIGQUEUE_MAX
constant _SC_SINGLE_PROCESS
constant _SC_SPIN_LOCKS
constant _SC_STREAM_MAX
constant _SC_SYNCHRONIZED_IO
constant _SC_THREADS
constant _SC_THREAD_ATTR_STACKADDR
constant _SC_THREAD_ATTR_STACKSIZE
constant _SC_THREAD_DESTRUCTOR_ITERATIONS
constant _SC_THREAD_KEYS_MAX
constant _SC_THREAD_PRIORITY_SCHEDULING
constant _SC_THREAD_PRIO_INHERIT
constant _SC_THREAD_PRIO_PROTECT
constant _SC_THREAD_PROCESS_SHARED
constant _SC_THREAD_SAFE_FUNCTIONS
constant _SC_THREAD_STACK_MIN
constant _SC_THREAD_THREADS_MAX
constant _SC_TIMERS
constant _SC_TIMER_MAX
constant _SC_TTY_NAME_MAX
constant _SC_TYPED_MEMORY_OBJECTS
constant _SC_TZNAME_MAX
constant _SC_USER_GROUPS
constant _SC_USER_GROUPS_R
# ifdef XOPEN2K
constant _SC_V6_ILP32_OFF32
constant _SC_V6_ILP32_OFFBIG
constant _SC_V6_LP64_OFF64
constant _SC_V6_LPBIG_OFFBIG
# endif
# if defined XOPEN2K8 || defined POSIX2008
constant _SC_V7_ILP32_OFF32
constant _SC_V7_ILP32_OFFBIG
constant _SC_V7_LP64_OFF64
constant _SC_V7_LPBIG_OFFBIG
# endif
constant _SC_VERSION
# if !defined POSIX && !defined POSIX2008
constant _SC_XOPEN_VERSION
constant _SC_XOPEN_CRYPT
constant _SC_XOPEN_ENH_I18N
constant _SC_XOPEN_SHM
constant _SC_XOPEN_UNIX
constant _SC_XOPEN_XCU_VERSION
constant _SC_XOPEN_LEGACY
constant _SC_XOPEN_REALTIME
constant _SC_XOPEN_REALTIME_THREADS
# endif
constant _SC_STREAMS
constant _SC_XBS5_ILP32_OFF32
constant _SC_XBS5_ILP32_OFFBIG
constant _SC_XBS5_LP64_OFF64
constant _SC_XBS5_LPBIG_OFFBIG
# ifdef XOPEN2K
constant _CS_POSIX_V6_ILP32_OFF32_CFLAGS
constant _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
constant _CS_POSIX_V6_ILP32_OFF32_LIBS
constant _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
constant _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
constant _CS_POSIX_V6_ILP32_OFFBIG_LIBS
constant _CS_POSIX_V6_LP64_OFF64_CFLAGS
constant _CS_POSIX_V6_LP64_OFF64_LDFLAGS
constant _CS_POSIX_V6_LP64_OFF64_LIBS
constant _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
constant _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
constant _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
constant _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
constant _CS_V6_ENV
# endif
# if defined XOPEN2K8 || defined POSIX2008
constant _CS_POSIX_V7_ILP32_OFF32_CFLAGS
constant _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
constant _CS_POSIX_V7_ILP32_OFF32_LIBS
constant _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
constant _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
constant _CS_POSIX_V7_ILP32_OFFBIG_LIBS
constant _CS_POSIX_V7_LP64_OFF64_CFLAGS
constant _CS_POSIX_V7_LP64_OFF64_LDFLAGS
constant _CS_POSIX_V7_LP64_OFF64_LIBS
constant _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
constant _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
constant _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
constant _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
constant _CS_V7_ENV
# endif
constant _SC_THREAD_ROBUST_PRIO_INHERIT
constant _SC_THREAD_ROBUST_PRIO_PROTECT

#if !defined POSIX && !defined POSIX2008
constant F_LOCK
constant F_ULOCK
constant F_TEST
constant F_TLOCK
#endif

constant _PC_ASYNC_IO
constant _PC_CHOWN_RESTRICTED
constant _PC_FILESIZEBITS
constant _PC_LINK_MAX
constant _PC_MAX_CANON
constant _PC_MAX_INPUT
constant _PC_NAME_MAX
constant _PC_NO_TRUNC
constant _PC_PATH_MAX
constant _PC_PIPE_BUF
constant _PC_PRIO_IO
constant _PC_REC_INCR_XFER_SIZE
constant _PC_REC_MAX_XFER_SIZE
constant _PC_REC_MIN_XFER_SIZE
constant _PC_REC_XFER_ALIGN
constant _PC_SYNC_IO
constant _PC_VDISABLE

constant STDIN_FILENO
constant STDOUT_FILENO
constant STDERR_FILENO

type size_t
type ssize_t
type uid_t
type gid_t
type off_t
type pid_t

type useconds_t

type intptr_t

function int access (const char*, int)
function {unsigned int} alarm (unsigned int)
#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008
function int brk (void*)
#endif
function int chdir (const char*)
#if defined XPG3 || defined XPG4 || defined UNIX98
function int chroot (const char*)
#endif
function int chown (const char*, uid_t, gid_t)
function int close (int)
function size_t confstr (int, char*, size_t)
#if !defined POSIX && !defined POSIX2008
function {char*} crypt (const char*, const char*)
#endif
function {char*} ctermid (char*)
#if defined XPG3 || defined XPG4 || defined UNIX98
function {char*} cuserid (char*)
#endif
function int dup (int)
function int dup2 (int, int)
#if !defined POSIX && !defined POSIX2008
function void encrypt (char[64], int)
#endif
function int execl (const char*, const char*, ...)
function int execle (const char*, const char*, ...)
function int execlp (const char*, const char*, ...)
function int execv (const char*, char *const[])
function int execve (const char*, char *const[], char *const[])
function int execvp (const char*, char *const[])
function void _exit (int)
# if defined XOPEN2K8 || defined POSIX2008
function int faccessat (int, const char*, int, int)
# endif
function int fchown (int, uid_t, gid_t)
# if defined XOPEN2K8 || defined POSIX2008
function int fchownat (int, const char*, uid_t, gid_t, int)
# endif
#ifndef POSIX
function int fchdir (int)
#endif
function int fdatasync (int)
# if defined XOPEN2K8 || defined POSIX2008
function int fexecve (int, char *const[], char *const[])
# endif
function pid_t fork (void)
function {long int} fpathconf (int, int)
function int fsync (int)
function int ftruncate (int, off_t)
function {char*} getcwd (char*, size_t)
#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008
function int getdtablesize (void)
#endif
function gid_t getegid (void)
function uid_t geteuid (void)
function gid_t getgid (void)
function int getgroups (int, gid_t[])
#if !defined POSIX && !defined POSIX2008
function long gethostid (void)
#endif
function int gethostname (char*, size_t)
function {char*} getlogin (void)
function int getlogin_r (char*, size_t)
function int getopt (int, char*const[], const char*)
#if defined XPG3 || defined XPG4 || defined UNIX98
function int getpagesize (void)
function {char*} getpass (const char*)
#endif
#ifndef POSIX
function pid_t getpgid (pid_t)
#endif
function pid_t getpgrp (void)
function pid_t getpid (void)
function pid_t getppid (void)
#ifndef POSIX
function pid_t getsid (pid_t)
#endif
function uid_t getuid (void)
#if defined XPG3 || defined XPG4 || defined UNIX98 || defined XOPEN2K
function {char*} getwd (char*)
#endif
function int isatty (int)
#ifndef POSIX
function int lchown (const char*, uid_t, gid_t)
#endif
function int link (const char*, const char*)
# if defined XOPEN2K8 || defined POSIX2008
function int linkat (int, const char*, int, const char*, int)
# endif
# if !defined POSIX && !defined POSIX2008
function int lockf (int, int, off_t)
# endif
function off_t lseek (int, off_t, int)
# if !defined POSIX && !defined POSIX2008
function int nice (int)
# endif
function {long int} pathconf (const char*, int)
function int pause (void)
function int pipe (int[2])
#ifndef POSIX
function ssize_t pread (int, void*, size_t, off_t)
#endif
#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX2008
function int pthread_atfork (void(*)(void), void(*)(void), void(*)(void))
#endif
#ifndef POSIX
function ssize_t pwrite (int, const void*, size_t, off_t)
#endif
function ssize_t read (int, void*, size_t)
function ssize_t readlink (const char*, char*, size_t)
# if defined XOPEN2K8 || defined POSIX2008
function ssize_t readlinkat (int, const char*, char*, size_t)
# endif
function int rmdir (const char*)
#if !defined XOPEN2K && !defined XOPEN2K8 && !defined POSIX && !defined POSIX2008
function {void*} sbrk (intptr_t)
#endif
function int setegid (gid_t)
function int seteuid (uid_t)
function int setgid (gid_t)
function int setpgid (pid_t, pid_t)
# if !defined POSIX && !defined POSIX2008
function pid_t setpgrp (void)
function int setregid (gid_t, gid_t)
function int setreuid (uid_t, uid_t)
# endif
function pid_t setsid (void)
function int setuid (uid_t)
function {unsigned int} sleep (unsigned int)
# if !defined POSIX && !defined POSIX2008
function void swab (const void*, void*, ssize_t)
# endif
function int symlink (const char*, const char*)
# if defined XOPEN2K8 || defined POSIX2008
function int symlinkat (const char*, int, const char*)
# endif
# if !defined POSIX && !defined POSIX2008
function void sync (void)
# endif
function {long int} sysconf (int)
function pid_t tcgetpgrp (int)
function int tcsetpgrp (int, pid_t)
#ifndef POSIX
function int truncate (const char*, off_t)
#endif
function {char*} ttyname (int)
function int ttyname_r (int, char*, size_t)
#if defined XPG3 || defined XPG4 || defined UNIX98 || defined XOPEN2K
function useconds_t ualarm (useconds_t, useconds_t)
#endif
function int unlink (const char*)
# if defined XOPEN2K8 || defined POSIX2008
function int unlinkat (int, const char*, int)
# endif
#if defined XPG3 || defined XPG4 || defined UNIX98 || defined XOPEN2K
function int usleep (useconds_t)
function pid_t vfork (void)
#endif
function ssize_t write (int, const void*, size_t)

variable {char*} optarg
variable int optind
variable int opterr
variable int optopt

allow *_t
#endif
