# posix

Dark Mode

- Manual
- Standard library
- Index
- Compiler docs
- Fusion docs

Search:

This is a raw POSIX interface module. It does not not provide any convenience: cstrings are used instead of proper Nim strings and return codes indicate errors. If you want exceptions and a proper Nim-like interface, use the OS module or write a wrapper.

For high-level wrappers specialized for Linux and BSDs see: posix_utils

Coding conventions: ALL types are named the same as in the POSIX standard except that they start with 'T' or 'P' (if they are pointers) and without the '_t' suffix to be consistent with Nim conventions. If an identifier is a Nim keyword the `identifier` notation is used.

This library relies on the header files of your C compiler. The resulting C code will just `#include <XYZ.h>` and not define the symbols declared here.

# Types

    DIR {...}{.importc: "DIR", header: "<dirent.h>", incompleteStruct.} = object

  A type representing a directory stream. Source Edit

    SocketHandle = distinct cint

  Source Edit

    Time {...}{.importc: "time_t", header: "<time.h>".} = distinct (when defined(
        nimUse64BitCTime):
      int64
     else:
      clong)

  Source Edit

    Timespec {...}{.importc: "struct timespec", header: "<time.h>", final, pure.} = object
      tv_sec*: Time              ## Seconds.
      tv_nsec*: int              ## Nanoseconds.

  struct timespec Source Edit

    Dirent {...}{.importc: "struct dirent", header: "<dirent.h>", final, pure.} = object
      when defined(haiku):
          d_dev*: Dev            ## Device (not POSIX)
          d_pdev*: Dev           ## Parent device (only for queries) (not POSIX)

      d_ino*: Ino                ## File serial number.
      when defined(dragonfly):
          d_type*: uint8

      elif true or false:
          d_reclen*: cshort      ## Length of this record. (not POSIX)
          d_type*: int8 ## Type of file; not supported by all filesystem types.
                        ## (not POSIX)
          when true or false:
              d_off*: Off        ## Not an offset. Value that ``telldir()`` would return.

      elif defined(haiku):
          d_pino*: Ino           ## Parent inode (only for queries) (not POSIX)
          d_reclen*: cushort     ## Length of this record. (not POSIX)

      d_name*: array[0 .. 255, char] ## Name of entry.

  dirent_t struct Source Edit

    Tflock {...}{.importc: "struct flock", final, pure, header: "<fcntl.h>".} = object
      l_type*: cshort            ## Type of lock; F_RDLCK, F_WRLCK, F_UNLCK.
      l_whence*: cshort          ## Flag for starting offset.
      l_start*: Off              ## Relative offset in bytes.
      l_len*: Off                ## Size; if 0 then until EOF.
      l_pid*: Pid                ## Process ID of the process holding the lock;
                                 ## returned with F_GETLK.

  flock type Source Edit

    FTW {...}{.importc: "struct FTW", header: "<ftw.h>", final, pure.} = object
      base*: cint
      level*: cint

  Source Edit

    Glob {...}{.importc: "glob_t", header: "<glob.h>", final, pure.} = object
      gl_pathc*: int             ## Count of paths matched by pattern.
      gl_pathv*: cstringArray    ## Pointer to a list of matched pathnames.
      gl_offs*: int              ## Slots to reserve at the beginning of gl_pathv.

  glob_t Source Edit

    Group {...}{.importc: "struct group", header: "<grp.h>", final, pure.} = object
      gr_name*: cstring          ## The name of the group.
      gr_gid*: Gid               ## Numerical group ID.
      gr_mem*: cstringArray      ## Pointer to a null-terminated array of character
                                 ## pointers to member names.

  struct group Source Edit

    Iconv {...}{.importc: "iconv_t", header: "<iconv.h>", final, pure.} = object

  Identifies the conversion from one codeset to another. Source Edit

    Lconv {...}{.importc: "struct lconv", header: "<locale.h>", final, pure.} = object
      currency_symbol*: cstring
      decimal_point*: cstring
      frac_digits*: char
      grouping*: cstring
      int_curr_symbol*: cstring
      int_frac_digits*: char
      int_n_cs_precedes*: char
      int_n_sep_by_space*: char
      int_n_sign_posn*: char
      int_p_cs_precedes*: char
      int_p_sep_by_space*: char
      int_p_sign_posn*: char
      mon_decimal_point*: cstring
      mon_grouping*: cstring
      mon_thousands_sep*: cstring
      negative_sign*: cstring
      n_cs_precedes*: char
      n_sep_by_space*: char
      n_sign_posn*: char
      positive_sign*: cstring
      p_cs_precedes*: char
      p_sep_by_space*: char
      p_sign_posn*: char
      thousands_sep*: cstring

  Source Edit

    Mqd {...}{.importc: "mqd_t", header: "<mqueue.h>", final, pure.} = object

  Source Edit

    MqAttr {...}{.importc: "struct mq_attr", header: "<mqueue.h>", final, pure.} = object
      mq_flags*: int             ## Message queue flags.
      mq_maxmsg*: int            ## Maximum number of messages.
      mq_msgsize*: int           ## Maximum message size.
      mq_curmsgs*: int           ## Number of messages currently queued.

  message queue attribute Source Edit

    Passwd {...}{.importc: "struct passwd", header: "<pwd.h>", final, pure.} = object
      pw_name*: cstring          ## User's login name.
      pw_uid*: Uid               ## Numerical user ID.
      pw_gid*: Gid               ## Numerical group ID.
      pw_dir*: cstring           ## Initial working directory.
      pw_shell*: cstring         ## Program to use as shell.

  struct passwd Source Edit

    Blkcnt {...}{.importc: "blkcnt_t", header: "<sys/types.h>".} = int

  used for file block counts Source Edit

    Blksize {...}{.importc: "blksize_t", header: "<sys/types.h>".} = int

  used for block sizes Source Edit

    Clock {...}{.importc: "clock_t", header: "<sys/types.h>".} = int

  Source Edit

    ClockId {...}{.importc: "clockid_t", header: "<sys/types.h>".} = int

  Source Edit

    Dev {...}{.importc: "dev_t", header: "<sys/types.h>".} = int

  Source Edit

    Fsblkcnt {...}{.importc: "fsblkcnt_t", header: "<sys/types.h>".} = int

  Source Edit

    Fsfilcnt {...}{.importc: "fsfilcnt_t", header: "<sys/types.h>".} = int

  Source Edit

    Gid {...}{.importc: "gid_t", header: "<sys/types.h>".} = int

  Source Edit

    Id {...}{.importc: "id_t", header: "<sys/types.h>".} = int

  Source Edit

    Ino {...}{.importc: "ino_t", header: "<sys/types.h>".} = int

  Source Edit

    Key {...}{.importc: "key_t", header: "<sys/types.h>".} = int

  Source Edit

    Mode {...}{.importc: "mode_t", header: "<sys/types.h>".} = (when false or false:
      uint16
     else:
      uint32)

  Source Edit

    Nlink {...}{.importc: "nlink_t", header: "<sys/types.h>".} = int

  Source Edit

    Off {...}{.importc: "off_t", header: "<sys/types.h>".} = int64

  Source Edit

    Pid {...}{.importc: "pid_t", header: "<sys/types.h>".} = int32

  Source Edit

    Pthread_attr {...}{.importc: "pthread_attr_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_barrier {...}{.importc: "pthread_barrier_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_barrierattr {...}{.importc: "pthread_barrierattr_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_cond {...}{.importc: "pthread_cond_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_condattr {...}{.importc: "pthread_condattr_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_key {...}{.importc: "pthread_key_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_mutex {...}{.importc: "pthread_mutex_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_mutexattr {...}{.importc: "pthread_mutexattr_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_once {...}{.importc: "pthread_once_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_rwlock {...}{.importc: "pthread_rwlock_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_rwlockattr {...}{.importc: "pthread_rwlockattr_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread_spinlock {...}{.importc: "pthread_spinlock_t", header: "<sys/types.h>".} = int

  Source Edit

    Pthread {...}{.importc: "pthread_t", header: "<sys/types.h>".} = int

  Source Edit

    Suseconds {...}{.importc: "suseconds_t", header: "<sys/types.h>".} = int

  Source Edit

    Timer {...}{.importc: "timer_t", header: "<sys/types.h>".} = int

  Source Edit

    Trace_attr {...}{.importc: "trace_attr_t", header: "<sys/types.h>".} = int

  Source Edit

    Trace_event_id {...}{.importc: "trace_event_id_t", header: "<sys/types.h>".} = int

  Source Edit

    Trace_event_set {...}{.importc: "trace_event_set_t", header: "<sys/types.h>".} = int

  Source Edit

    Trace_id {...}{.importc: "trace_id_t", header: "<sys/types.h>".} = int

  Source Edit

    Uid {...}{.importc: "uid_t", header: "<sys/types.h>".} = int

  Source Edit

    Useconds {...}{.importc: "useconds_t", header: "<sys/types.h>".} = int

  Source Edit

    Utsname {...}{.importc: "struct utsname", header: "<sys/utsname.h>", final, pure.} = object
      sysname*,                 ## Name of the hardware type on which the
                                 ## system is running.
      ## Name of this implementation of the operating system.
      nodename*,                ## Name of this node within the communications
                                 ## network to which this node is attached, if any.
      release*,                 ## Current release level of this implementation.
      version*,                 ## Current version level of this release.
      machine*: array[0 .. 255, char]

  struct utsname Source Edit

    Sem {...}{.importc: "sem_t", header: "<semaphore.h>", final, pure.} = object

  Source Edit

    Ipc_perm {...}{.importc: "struct ipc_perm", header: "<sys/ipc.h>", final, pure.} = object
      uid*: Uid                  ## Owner's user ID.
      gid*: Gid                  ## Owner's group ID.
      cuid*: Uid                 ## Creator's user ID.
      cgid*: Gid                 ## Creator's group ID.
      mode*: Mode                ## Read/write permission.

  struct ipc_perm Source Edit

    Stat {...}{.importc: "struct stat", header: "<sys/stat.h>", final, pure.} = object
      st_dev*: Dev               ## Device ID of device containing file.
      st_ino*: Ino               ## File serial number.
      st_mode*: Mode             ## Mode of file (see below).
      st_nlink*: Nlink           ## Number of hard links to the file.
      st_uid*: Uid               ## User ID of file.
      st_gid*: Gid               ## Group ID of file.
      st_rdev*: Dev              ## Device ID (if file is character or block special).
      st_size*: Off              ## For regular files, the file size in bytes.
                                 ## For symbolic links, the length in bytes of the
                                 ## pathname contained in the symbolic link.
                                 ## For a shared memory object, the length in bytes.
                                 ## For a typed memory object, the length in bytes.
                                 ## For other file types, the use of this field is
                                 ## unspecified.
      when StatHasNanoseconds:
          st_atim*: Timespec     ## Time of last access.
          st_mtim*: Timespec     ## Time of last data modification.
          st_ctim*: Timespec     ## Time of last status change.

      else:
          st_atime*: Time        ## Time of last access.
          st_mtime*: Time        ## Time of last data modification.
          st_ctime*: Time        ## Time of last status change.

      st_blksize*: Blksize       ## A file system-specific preferred I/O block size
                                 ##
                                 ## for this object. In some file system types, this
                                 ##
                                 ## may vary from file to file.
      st_blocks*: Blkcnt         ## Number of blocks allocated for this object.

  struct stat Source Edit

    Statvfs {...}{.importc: "struct statvfs", header: "<sys/statvfs.h>", final, pure.} = object
      f_bsize*: int              ## File system block size.
      f_frsize*: int             ## Fundamental file system block size.
      f_blocks*: Fsblkcnt        ## Total number of blocks on file system
                                 ## in units of f_frsize.
      f_bfree*: Fsblkcnt         ## Total number of free blocks.
      f_bavail*: Fsblkcnt        ## Number of free blocks available to
                                 ## non-privileged process.
      f_files*: Fsfilcnt         ## Total number of file serial numbers.
      f_ffree*: Fsfilcnt         ## Total number of free file serial numbers.
      f_favail*: Fsfilcnt        ## Number of file serial numbers available to
                                 ## non-privileged process.
      f_fsid*: int               ## File system ID.
      f_flag*: int               ## Bit mask of f_flag values.
      f_namemax*: int            ## Maximum filename length.

  struct statvfs Source Edit

    Posix_typed_mem_info {...}{.importc: "struct posix_typed_mem_info",
                           header: "<sys/mman.h>", final, pure.} = object
      posix_tmi_length*: int

  Source Edit

    Tm {...}{.importc: "struct tm", header: "<time.h>", final, pure.} = object
      tm_sec*: cint              ## Seconds [0,60].
      tm_min*: cint              ## Minutes [0,59].
      tm_hour*: cint             ## Hour [0,23].
      tm_mday*: cint             ## Day of month [1,31].
      tm_mon*: cint              ## Month of year [0,11].
      tm_year*: cint             ## Years since 1900.
      tm_wday*: cint             ## Day of week [0,6] (Sunday =0).
      tm_yday*: cint             ## Day of year [0,365].
      tm_isdst*: cint            ## Daylight Savings flag.

  struct tm Source Edit

    Itimerspec {...}{.importc: "struct itimerspec", header: "<time.h>", final, pure.} = object
      it_interval*: Timespec     ## Timer period.
      it_value*: Timespec        ## Timer expiration.

  struct itimerspec Source Edit

    Sig_atomic {...}{.importc: "sig_atomic_t", header: "<signal.h>".} = cint

  Possibly volatile-qualified integer type of an object that can be accessed as an atomic entity, even in the presence of asynchronous interrupts. Source Edit

    Sigset {...}{.importc: "sigset_t", header: "<signal.h>", final, pure.} = object

  Source Edit

    SigEvent {...}{.importc: "struct sigevent", header: "<signal.h>", final, pure.} = object
      sigev_notify*: cint        ## Notification type.
      sigev_signo*: cint         ## Signal number.
      sigev_value*: SigVal       ## Signal value.
      sigev_notify_function*: proc (x: SigVal) {...}{.noconv.} ## Notification func.
      sigev_notify_attributes*: ptr Pthread_attr ## Notification attributes.

  struct sigevent Source Edit

    SigVal {...}{.importc: "union sigval", header: "<signal.h>", final, pure.} = object
      sival_ptr*: pointer        ## pointer signal value;
                                 ## integer signal value not defined!

  struct sigval Source Edit

    Sigaction {...}{.importc: "struct sigaction", header: "<signal.h>", final, pure.} = object
      sa_handler*: proc (x: cint) {...}{.noconv.} ## Pointer to a signal-catching
                                             ## function or one of the macros
                                             ## SIG_IGN or SIG_DFL.
      sa_mask*: Sigset           ## Set of signals to be blocked during execution of
                                 ## the signal handling function.
      sa_flags*: cint            ## Special flags.
      sa_sigaction*: proc (x: cint; y: ptr SigInfo; z: pointer) {...}{.noconv.}

  struct sigaction Source Edit

    Stack {...}{.importc: "stack_t", header: "<signal.h>", final, pure.} = object
      ss_sp*: pointer            ## Stack base or pointer.
      ss_size*: int              ## Stack size.
      ss_flags*: cint            ## Flags.

  stack_t Source Edit

    SigStack {...}{.importc: "struct sigstack", header: "<signal.h>", final, pure.} = object
      ss_onstack*: cint          ## Non-zero when signal stack is in use.
      ss_sp*: pointer            ## Signal stack pointer.

  struct sigstack Source Edit

    SigInfo {...}{.importc: "siginfo_t", header: "<signal.h>", final, pure.} = object
      si_signo*: cint            ## Signal number.
      si_code*: cint             ## Signal code.
      si_errno*: cint            ## If non-zero, an errno value associated with
                                 ## this signal, as defined in <errno.h>.
      si_pid*: Pid               ## Sending process ID.
      si_uid*: Uid               ## Real user ID of sending process.
      si_addr*: pointer          ## Address of faulting instruction.
      si_status*: cint           ## Exit value or signal.
      si_band*: int              ## Band event for SIGPOLL.
      si_value*: SigVal          ## Signal value.

  siginfo_t Source Edit

    Nl_item {...}{.importc: "nl_item", header: "<nl_types.h>".} = cint

  Source Edit

    Nl_catd {...}{.importc: "nl_catd", header: "<nl_types.h>".} = cint

  Source Edit

    Sched_param {...}{.importc: "struct sched_param", header: "<sched.h>", final, pure.} = object
      sched_priority*: cint
      sched_ss_low_priority*: cint ## Low scheduling priority for
                                   ## sporadic server.
      sched_ss_repl_period*: Timespec ## Replenishment period for
                                      ## sporadic server.
      sched_ss_init_budget*: Timespec ## Initial budget for sporadic server.
      sched_ss_max_repl*: cint   ## Maximum pending replenishments for
                                 ## sporadic server.

  struct sched_param Source Edit

    Timeval {...}{.importc: "struct timeval", header: "<sys/select.h>", final, pure.} = object
      tv_sec*: Time              ## Seconds.
      tv_usec*: Suseconds        ## Microseconds.

  struct timeval Source Edit

    TFdSet {...}{.importc: "fd_set", header: "<sys/select.h>", final, pure.} = object

  Source Edit

    Mcontext {...}{.importc: "mcontext_t", header: "<ucontext.h>", final, pure.} = object

  Source Edit

    Ucontext {...}{.importc: "ucontext_t", header: "<ucontext.h>", final, pure.} = object
      uc_link*: ptr Ucontext     ## Pointer to the context that is resumed
                                 ## when this context returns.
      uc_sigmask*: Sigset        ## The set of signals that are blocked when this
                                 ## context is active.
      uc_stack*: Stack           ## The stack used by this context.
      uc_mcontext*: Mcontext     ## A machine-specific representation of the saved
                                 ##
                                 ## context.

  ucontext_t Source Edit

    Taiocb {...}{.importc: "struct aiocb", header: "<aio.h>", final, pure.} = object
      aio_fildes*: cint          ## File descriptor.
      aio_offset*: Off           ## File offset.
      aio_buf*: pointer          ## Location of buffer.
      aio_nbytes*: int           ## Length of transfer.
      aio_reqprio*: cint         ## Request priority offset.
      aio_sigevent*: SigEvent    ## Signal number and value.
      aio_lio_opcode: cint       ## Operation to be performed.

  struct aiocb Source Edit

    Tposix_spawnattr {...}{.importc: "posix_spawnattr_t", header: "<spawn.h>", final,
                       pure.} = object

  Source Edit

    Tposix_spawn_file_actions {...}{.importc: "posix_spawn_file_actions_t",
                                header: "<spawn.h>", final, pure.} = object

  Source Edit

    SockLen {...}{.importc: "socklen_t", header: "<sys/socket.h>".} = cuint

  Source Edit

    TSa_Family {...}{.importc: "sa_family_t", header: "<sys/socket.h>".} = cushort

  Source Edit

    SockAddr {...}{.importc: "struct sockaddr", header: "<sys/socket.h>", pure, final.} = object
      sa_family*: TSa_Family     ## Address family.
      sa_data*: array[0 .. 255, char] ## Socket address (variable-length data).

  struct sockaddr Source Edit

    Sockaddr_un {...}{.importc: "struct sockaddr_un", header: "<sys/un.h>", pure, final.} = object
      sun_family*: TSa_Family    ## Address family.
      sun_path*: array[0 .. 108 - 1, char] ## Socket path

  struct sockaddr_un Source Edit

    Sockaddr_storage {...}{.importc: "struct sockaddr_storage", header: "<sys/socket.h>",
                       pure, final.} = object
      ss_family*: TSa_Family     ## Address family.

  struct sockaddr_storage Source Edit

    Tif_nameindex {...}{.importc: "struct if_nameindex", final, pure,
                    header: "<net/if.h>".} = object
      if_index*: cint            ## Numeric index of the interface.
      if_name*: cstring          ## Null-terminated name of the interface.

  struct if_nameindex Source Edit

    IOVec {...}{.importc: "struct iovec", pure, final, header: "<sys/uio.h>".} = object
      iov_base*: pointer         ## Base address of a memory region for input or output.
      iov_len*: csize_t          ## The size of the memory pointed to by iov_base.

  struct iovec Source Edit

    Tmsghdr {...}{.importc: "struct msghdr", pure, final, header: "<sys/socket.h>".} = object
      msg_name*: pointer         ## Optional address.
      msg_namelen*: SockLen      ## Size of address.
      msg_iov*: ptr IOVec        ## Scatter/gather array.
      msg_iovlen*: cint          ## Members in msg_iov.
      msg_control*: pointer      ## Ancillary data; see below.
      msg_controllen*: SockLen   ## Ancillary data buffer len.
      msg_flags*: cint           ## Flags on received message.

  struct msghdr Source Edit

    Tcmsghdr {...}{.importc: "struct cmsghdr", pure, final, header: "<sys/socket.h>".} = object
      cmsg_len*: SockLen         ## Data byte count, including the cmsghdr.
      cmsg_level*: cint          ## Originating protocol.
      cmsg_type*: cint           ## Protocol-specific type.

  struct cmsghdr Source Edit

    TLinger {...}{.importc: "struct linger", pure, final, header: "<sys/socket.h>".} = object
      l_onoff*: cint             ## Indicates whether linger option is enabled.
      l_linger*: cint            ## Linger time, in seconds.

  struct linger Source Edit

    InPort = uint16

  Source Edit

    InAddrScalar = uint32

  Source Edit

    InAddrT {...}{.importc: "in_addr_t", pure, final, header: "<netinet/in.h>".} = uint32

  Source Edit

    InAddr {...}{.importc: "struct in_addr", pure, final, header: "<netinet/in.h>".} = object
      s_addr*: InAddrScalar

  struct in_addr Source Edit

    Sockaddr_in {...}{.importc: "struct sockaddr_in", pure, final,
                  header: "<netinet/in.h>".} = object
      sin_family*: TSa_Family    ## AF_INET.
      sin_port*: InPort          ## Port number.
      sin_addr*: InAddr          ## IP address.

  struct sockaddr_in Source Edit

    In6Addr {...}{.importc: "struct in6_addr", pure, final, header: "<netinet/in.h>".} = object
      s6_addr*: array[0 .. 15, char]

  struct in6_addr Source Edit

    Sockaddr_in6 {...}{.importc: "struct sockaddr_in6", pure, final,
                   header: "<netinet/in.h>".} = object
      sin6_family*: TSa_Family   ## AF_INET6.
      sin6_port*: InPort         ## Port number.
      sin6_flowinfo*: int32      ## IPv6 traffic class and flow information.
      sin6_addr*: In6Addr        ## IPv6 address.
      sin6_scope_id*: int32      ## Set of interfaces for a scope.

  struct sockaddr_in6 Source Edit

    Tipv6_mreq {...}{.importc: "struct ipv6_mreq", pure, final, header: "<netinet/in.h>".} = object
      ipv6mr_multiaddr*: In6Addr ## IPv6 multicast address.
      ipv6mr_interface*: cint    ## Interface index.

  struct ipv6_mreq Source Edit

    Hostent {...}{.importc: "struct hostent", pure, final, header: "<netdb.h>".} = object
      h_name*: cstring           ## Official name of the host.
      h_aliases*: cstringArray   ## A pointer to an array of pointers to
                                 ## alternative host names, terminated by a
                                 ## null pointer.
      h_addrtype*: cint          ## Address type.
      h_length*: cint            ## The length, in bytes, of the address.
      h_addr_list*: cstringArray ## A pointer to an array of pointers to network
                                 ##
                                 ## addresses (in network byte order) for the
                                 ## host,
                                 ## terminated by a null pointer.

  struct hostent Source Edit

    Tnetent {...}{.importc: "struct netent", pure, final, header: "<netdb.h>".} = object
      n_name*: cstring           ## Official, fully-qualified (including the
                                 ## domain) name of the host.
      n_aliases*: cstringArray   ## A pointer to an array of pointers to
                                 ## alternative network names, terminated by a
                                 ## null
                                 ## pointer.
      n_addrtype*: cint          ## The address type of the network.
      n_net*: int32              ## The network number, in host byte order.

  struct netent Source Edit

    Protoent {...}{.importc: "struct protoent", pure, final, header: "<netdb.h>".} = object
      p_name*: cstring           ## Official name of the protocol.
      p_aliases*: cstringArray   ## A pointer to an array of pointers to
                                 ## alternative protocol names, terminated by
                                 ## a null
                                 ## pointer.
      p_proto*: cint             ## The protocol number.

  struct protoent Source Edit

    Servent {...}{.importc: "struct servent", pure, final, header: "<netdb.h>".} = object
      s_name*: cstring           ## Official name of the service.
      s_aliases*: cstringArray   ## A pointer to an array of pointers to
                                 ## alternative service names, terminated by
                                 ## a null pointer.
      s_port*: cint              ## The port number at which the service
                                 ## resides, in network byte order.
      s_proto*: cstring          ## The name of the protocol to use when
                                 ## contacting the service.

  struct servent Source Edit

    AddrInfo {...}{.importc: "struct addrinfo", pure, final, header: "<netdb.h>".} = object
      ai_flags*: cint            ## Input flags.
      ai_family*: cint           ## Address family of socket.
      ai_socktype*: cint         ## Socket type.
      ai_protocol*: cint         ## Protocol of socket.
      ai_addrlen*: SockLen       ## Length of socket address.
      ai_addr*: ptr SockAddr     ## Socket address of socket.
      ai_canonname*: cstring     ## Canonical name of service location.
      ai_next*: ptr AddrInfo     ## Pointer to next in list.

  struct addrinfo Source Edit

    TPollfd {...}{.importc: "struct pollfd", pure, final, header: "<poll.h>".} = object
      fd*: cint                  ## The following descriptor being polled.
      events*: cshort            ## The input event flags (see below).
      revents*: cshort           ## The output event flags (see below).

  struct pollfd Source Edit

    Tnfds {...}{.importc: "nfds_t", header: "<poll.h>".} = cint

  Source Edit

    Rusage {...}{.importc: "struct rusage", header: "<sys/resource.h>", bycopy.} = object
      ru_utime*, ru_stime*: Timeval
      ru_maxrss*, ru_ixrss*, ru_idrss*, ru_isrss*, ru_minflt*, ru_majflt*,
      ru_nswap*, ru_inblock*, ru_oublock*, ru_msgsnd*, ru_msgrcv*, ru_nsignals*,
      ru_nvcsw*, ru_nivcsw*: clong

  Source Edit

    RLimit {...}{.importc: "struct rlimit", header: "<sys/resource.h>", pure, final.} = object
      rlim_cur*: int
      rlim_max*: int

  Source Edit

# Vars

    errno: cint

  error variable Source Edit

    h_errno: cint

  Source Edit

    daylight: cint

  Source Edit

    timezone: int

  Source Edit

    AIO_ALLDONE: cint

  Source Edit

    AIO_CANCELED: cint

  Source Edit

    AIO_NOTCANCELED: cint

  Source Edit

    LIO_NOP: cint

  Source Edit

    LIO_NOWAIT: cint

  Source Edit

    LIO_READ: cint

  Source Edit

    LIO_WAIT: cint

  Source Edit

    LIO_WRITE: cint

  Source Edit

    RTLD_LAZY: cint

  Source Edit

    RTLD_NOW: cint

  Source Edit

    RTLD_GLOBAL: cint

  Source Edit

    RTLD_LOCAL: cint

  Source Edit

    E2BIG: cint

  Source Edit

    EACCES: cint

  Source Edit

    EADDRINUSE: cint

  Source Edit

    EADDRNOTAVAIL: cint

  Source Edit

    EAFNOSUPPORT: cint

  Source Edit

    EAGAIN: cint

  Source Edit

    EALREADY: cint

  Source Edit

    EBADF: cint

  Source Edit

    EBADMSG: cint

  Source Edit

    EBUSY: cint

  Source Edit

    ECANCELED: cint

  Source Edit

    ECHILD: cint

  Source Edit

    ECONNABORTED: cint

  Source Edit

    ECONNREFUSED: cint

  Source Edit

    ECONNRESET: cint

  Source Edit

    EDEADLK: cint

  Source Edit

    EDESTADDRREQ: cint

  Source Edit

    EDOM: cint

  Source Edit

    EDQUOT: cint

  Source Edit

    EEXIST: cint

  Source Edit

    EFAULT: cint

  Source Edit

    EFBIG: cint

  Source Edit

    EHOSTUNREACH: cint

  Source Edit

    EIDRM: cint

  Source Edit

    EILSEQ: cint

  Source Edit

    EINPROGRESS: cint

  Source Edit

    EINTR: cint

  Source Edit

    EINVAL: cint

  Source Edit

    EIO: cint

  Source Edit

    EISCONN: cint

  Source Edit

    EISDIR: cint

  Source Edit

    ELOOP: cint

  Source Edit

    EMFILE: cint

  Source Edit

    EMLINK: cint

  Source Edit

    EMSGSIZE: cint

  Source Edit

    EMULTIHOP: cint

  Source Edit

    ENAMETOOLONG: cint

  Source Edit

    ENETDOWN: cint

  Source Edit

    ENETRESET: cint

  Source Edit

    ENETUNREACH: cint

  Source Edit

    ENFILE: cint

  Source Edit

    ENOBUFS: cint

  Source Edit

    ENODATA: cint

  Source Edit

    ENODEV: cint

  Source Edit

    ENOENT: cint

  Source Edit

    ENOEXEC: cint

  Source Edit

    ENOLCK: cint

  Source Edit

    ENOLINK: cint

  Source Edit

    ENOMEM: cint

  Source Edit

    ENOMSG: cint

  Source Edit

    ENOPROTOOPT: cint

  Source Edit

    ENOSPC: cint

  Source Edit

    ENOSR: cint

  Source Edit

    ENOSTR: cint

  Source Edit

    ENOSYS: cint

  Source Edit

    ENOTCONN: cint

  Source Edit

    ENOTDIR: cint

  Source Edit

    ENOTEMPTY: cint

  Source Edit

    ENOTSOCK: cint

  Source Edit

    ENOTSUP: cint

  Source Edit

    ENOTTY: cint

  Source Edit

    ENXIO: cint

  Source Edit

    EOPNOTSUPP: cint

  Source Edit

    EOVERFLOW: cint

  Source Edit

    EPERM: cint

  Source Edit

    EPIPE: cint

  Source Edit

    EPROTO: cint

  Source Edit

    EPROTONOSUPPORT: cint

  Source Edit

    EPROTOTYPE: cint

  Source Edit

    ERANGE: cint

  Source Edit

    EROFS: cint

  Source Edit

    ESPIPE: cint

  Source Edit

    ESRCH: cint

  Source Edit

    ESTALE: cint

  Source Edit

    ETIME: cint

  Source Edit

    ETIMEDOUT: cint

  Source Edit

    ETXTBSY: cint

  Source Edit

    EWOULDBLOCK: cint

  Source Edit

    EXDEV: cint

  Source Edit

    F_DUPFD: cint

  Source Edit

    F_DUPFD_CLOEXEC: cint

  Source Edit

    F_GETFD: cint

  Source Edit

    F_SETFD: cint

  Source Edit

    F_GETFL: cint

  Source Edit

    F_SETFL: cint

  Source Edit

    F_GETLK: cint

  Source Edit

    F_SETLK: cint

  Source Edit

    F_SETLKW: cint

  Source Edit

    F_GETOWN: cint

  Source Edit

    F_SETOWN: cint

  Source Edit

    FD_CLOEXEC: cint

  Source Edit

    F_RDLCK: cint

  Source Edit

    F_UNLCK: cint

  Source Edit

    F_WRLCK: cint

  Source Edit

    O_CREAT: cint

  Source Edit

    O_EXCL: cint

  Source Edit

    O_NOCTTY: cint

  Source Edit

    O_TRUNC: cint

  Source Edit

    O_APPEND: cint

  Source Edit

    O_DSYNC: cint

  Source Edit

    O_NONBLOCK: cint

  Source Edit

    O_RSYNC: cint

  Source Edit

    O_SYNC: cint

  Source Edit

    O_ACCMODE: cint

  Source Edit

    O_RDONLY: cint

  Source Edit

    O_RDWR: cint

  Source Edit

    O_WRONLY: cint

  Source Edit

    O_CLOEXEC: cint

  Source Edit

    POSIX_FADV_NORMAL: cint

  Source Edit

    POSIX_FADV_SEQUENTIAL: cint

  Source Edit

    POSIX_FADV_RANDOM: cint

  Source Edit

    POSIX_FADV_WILLNEED: cint

  Source Edit

    POSIX_FADV_DONTNEED: cint

  Source Edit

    POSIX_FADV_NOREUSE: cint

  Source Edit

    FE_DIVBYZERO: cint

  Source Edit

    FE_INEXACT: cint

  Source Edit

    FE_INVALID: cint

  Source Edit

    FE_OVERFLOW: cint

  Source Edit

    FE_UNDERFLOW: cint

  Source Edit

    FE_ALL_EXCEPT: cint

  Source Edit

    FE_DOWNWARD: cint

  Source Edit

    FE_TONEAREST: cint

  Source Edit

    FE_TOWARDZERO: cint

  Source Edit

    FE_UPWARD: cint

  Source Edit

    FE_DFL_ENV: cint

  Source Edit

    MM_HARD: cint

  Source Edit

    MM_SOFT: cint

  Source Edit

    MM_FIRM: cint

  Source Edit

    MM_APPL: cint

  Source Edit

    MM_UTIL: cint

  Source Edit

    MM_OPSYS: cint

  Source Edit

    MM_RECOVER: cint

  Source Edit

    MM_NRECOV: cint

  Source Edit

    MM_HALT: cint

  Source Edit

    MM_ERROR: cint

  Source Edit

    MM_WARNING: cint

  Source Edit

    MM_INFO: cint

  Source Edit

    MM_NOSEV: cint

  Source Edit

    MM_PRINT: cint

  Source Edit

    MM_CONSOLE: cint

  Source Edit

    MM_OK: cint

  Source Edit

    MM_NOTOK: cint

  Source Edit

    MM_NOMSG: cint

  Source Edit

    MM_NOCON: cint

  Source Edit

    FNM_NOMATCH: cint

  Source Edit

    FNM_PATHNAME: cint

  Source Edit

    FNM_PERIOD: cint

  Source Edit

    FNM_NOESCAPE: cint

  Source Edit

    FNM_NOSYS: cint

  Source Edit

    FTW_F: cint

  Source Edit

    FTW_D: cint

  Source Edit

    FTW_DNR: cint

  Source Edit

    FTW_DP: cint

  Source Edit

    FTW_NS: cint

  Source Edit

    FTW_SL: cint

  Source Edit

    FTW_SLN: cint

  Source Edit

    FTW_PHYS: cint

  Source Edit

    FTW_MOUNT: cint

  Source Edit

    FTW_DEPTH: cint

  Source Edit

    FTW_CHDIR: cint

  Source Edit

    GLOB_APPEND: cint

  Source Edit

    GLOB_DOOFFS: cint

  Source Edit

    GLOB_ERR: cint

  Source Edit

    GLOB_MARK: cint

  Source Edit

    GLOB_NOCHECK: cint

  Source Edit

    GLOB_NOESCAPE: cint

  Source Edit

    GLOB_NOSORT: cint

  Source Edit

    GLOB_ABORTED: cint

  Source Edit

    GLOB_NOMATCH: cint

  Source Edit

    GLOB_NOSPACE: cint

  Source Edit

    GLOB_NOSYS: cint

  Source Edit

    CODESET: cint

  Source Edit

    D_T_FMT: cint

  Source Edit

    D_FMT: cint

  Source Edit

    T_FMT: cint

  Source Edit

    T_FMT_AMPM: cint

  Source Edit

    AM_STR: cint

  Source Edit

    PM_STR: cint

  Source Edit

    DAY_1: cint

  Source Edit

    DAY_2: cint

  Source Edit

    DAY_3: cint

  Source Edit

    DAY_4: cint

  Source Edit

    DAY_5: cint

  Source Edit

    DAY_6: cint

  Source Edit

    DAY_7: cint

  Source Edit

    ABDAY_1: cint

  Source Edit

    ABDAY_2: cint

  Source Edit

    ABDAY_3: cint

  Source Edit

    ABDAY_4: cint

  Source Edit

    ABDAY_5: cint

  Source Edit

    ABDAY_6: cint

  Source Edit

    ABDAY_7: cint

  Source Edit

    MON_1: cint

  Source Edit

    MON_2: cint

  Source Edit

    MON_3: cint

  Source Edit

    MON_4: cint

  Source Edit

    MON_5: cint

  Source Edit

    MON_6: cint

  Source Edit

    MON_7: cint

  Source Edit

    MON_8: cint

  Source Edit

    MON_9: cint

  Source Edit

    MON_10: cint

  Source Edit

    MON_11: cint

  Source Edit

    MON_12: cint

  Source Edit

    ABMON_1: cint

  Source Edit

    ABMON_2: cint

  Source Edit

    ABMON_3: cint

  Source Edit

    ABMON_4: cint

  Source Edit

    ABMON_5: cint

  Source Edit

    ABMON_6: cint

  Source Edit

    ABMON_7: cint

  Source Edit

    ABMON_8: cint

  Source Edit

    ABMON_9: cint

  Source Edit

    ABMON_10: cint

  Source Edit

    ABMON_11: cint

  Source Edit

    ABMON_12: cint

  Source Edit

    ERA: cint

  Source Edit

    ERA_D_FMT: cint

  Source Edit

    ERA_D_T_FMT: cint

  Source Edit

    ERA_T_FMT: cint

  Source Edit

    ALT_DIGITS: cint

  Source Edit

    RADIXCHAR: cint

  Source Edit

    THOUSEP: cint

  Source Edit

    YESEXPR: cint

  Source Edit

    NOEXPR: cint

  Source Edit

    CRNCYSTR: cint

  Source Edit

    LC_ALL: cint

  Source Edit

    LC_COLLATE: cint

  Source Edit

    LC_CTYPE: cint

  Source Edit

    LC_MESSAGES: cint

  Source Edit

    LC_MONETARY: cint

  Source Edit

    LC_NUMERIC: cint

  Source Edit

    LC_TIME: cint

  Source Edit

    IPPORT_RESERVED: cint

  Source Edit

    HOST_NOT_FOUND: cint

  Source Edit

    NO_DATA: cint

  Source Edit

    NO_RECOVERY: cint

  Source Edit

    TRY_AGAIN: cint

  Source Edit

    AI_PASSIVE: cint

  Source Edit

    AI_CANONNAME: cint

  Source Edit

    AI_NUMERICHOST: cint

  Source Edit

    AI_NUMERICSERV: cint

  Source Edit

    AI_V4MAPPED: cint

  Source Edit

    AI_ALL: cint

  Source Edit

    AI_ADDRCONFIG: cint

  Source Edit

    NI_NOFQDN: cint

  Source Edit

    NI_NUMERICHOST: cint

  Source Edit

    NI_NAMEREQD: cint

  Source Edit

    NI_NUMERICSERV: cint

  Source Edit

    NI_NUMERICSCOPE: cint

  Source Edit

    NI_DGRAM: cint

  Source Edit

    EAI_AGAIN: cint

  Source Edit

    EAI_BADFLAGS: cint

  Source Edit

    EAI_FAIL: cint

  Source Edit

    EAI_FAMILY: cint

  Source Edit

    EAI_MEMORY: cint

  Source Edit

    EAI_NONAME: cint

  Source Edit

    EAI_SERVICE: cint

  Source Edit

    EAI_SOCKTYPE: cint

  Source Edit

    EAI_SYSTEM: cint

  Source Edit

    EAI_OVERFLOW: cint

  Source Edit

    IF_NAMESIZE: cint

  Source Edit

    IPPROTO_IP: cint

  Source Edit

    IPPROTO_IPV6: cint

  Source Edit

    IPPROTO_ICMP: cint

  Source Edit

    IPPROTO_ICMPV6: cint

  Source Edit

    IPPROTO_RAW: cint

  Source Edit

    IPPROTO_TCP: cint

  Source Edit

    IPPROTO_UDP: cint

  Source Edit

    INADDR_ANY: InAddrScalar

  Source Edit

    INADDR_LOOPBACK: InAddrScalar

  Source Edit

    INADDR_BROADCAST: InAddrScalar

  Source Edit

    INET_ADDRSTRLEN: cint

  Source Edit

    INET6_ADDRSTRLEN: cint

  Source Edit

    IPV6_JOIN_GROUP: cint

  Source Edit

    IPV6_LEAVE_GROUP: cint

  Source Edit

    IPV6_MULTICAST_HOPS: cint

  Source Edit

    IPV6_MULTICAST_IF: cint

  Source Edit

    IPV6_MULTICAST_LOOP: cint

  Source Edit

    IPV6_UNICAST_HOPS: cint

  Source Edit

    IPV6_V6ONLY: cint

  Source Edit

    TCP_NODELAY: cint

  Source Edit

    NL_SETD: cint

  Source Edit

    NL_CAT_LOCALE: cint

  Source Edit

    POLLIN: cshort

  Source Edit

    POLLRDNORM: cshort

  Source Edit

    POLLRDBAND: cshort

  Source Edit

    POLLPRI: cshort

  Source Edit

    POLLOUT: cshort

  Source Edit

    POLLWRNORM: cshort

  Source Edit

    POLLWRBAND: cshort

  Source Edit

    POLLERR: cshort

  Source Edit

    POLLHUP: cshort

  Source Edit

    POLLNVAL: cshort

  Source Edit

    PTHREAD_BARRIER_SERIAL_THREAD: cint

  Source Edit

    PTHREAD_CANCEL_ASYNCHRONOUS: cint

  Source Edit

    PTHREAD_CANCEL_ENABLE: cint

  Source Edit

    PTHREAD_CANCEL_DEFERRED: cint

  Source Edit

    PTHREAD_CANCEL_DISABLE: cint

  Source Edit

    PTHREAD_CREATE_DETACHED: cint

  Source Edit

    PTHREAD_CREATE_JOINABLE: cint

  Source Edit

    PTHREAD_EXPLICIT_SCHED: cint

  Source Edit

    PTHREAD_INHERIT_SCHED: cint

  Source Edit

    PTHREAD_MUTEX_DEFAULT: cint

  Source Edit

    PTHREAD_MUTEX_ERRORCHECK: cint

  Source Edit

    PTHREAD_MUTEX_NORMAL: cint

  Source Edit

    PTHREAD_MUTEX_RECURSIVE: cint

  Source Edit

    PTHREAD_PRIO_INHERIT: cint

  Source Edit

    PTHREAD_PRIO_NONE: cint

  Source Edit

    PTHREAD_PRIO_PROTECT: cint

  Source Edit

    PTHREAD_PROCESS_SHARED: cint

  Source Edit

    PTHREAD_PROCESS_PRIVATE: cint

  Source Edit

    PTHREAD_SCOPE_PROCESS: cint

  Source Edit

    PTHREAD_SCOPE_SYSTEM: cint

  Source Edit

    SCHED_FIFO: cint

  Source Edit

    SCHED_RR: cint

  Source Edit

    SCHED_SPORADIC: cint

  Source Edit

    SCHED_OTHER: cint

  Source Edit

    SEM_FAILED: pointer

  Source Edit

    SIGEV_NONE: cint

  Source Edit

    SIGEV_SIGNAL: cint

  Source Edit

    SIGEV_THREAD: cint

  Source Edit

    SIGABRT: cint

  Source Edit

    SIGALRM: cint

  Source Edit

    SIGBUS: cint

  Source Edit

    SIGCHLD: cint

  Source Edit

    SIGCONT: cint

  Source Edit

    SIGFPE: cint

  Source Edit

    SIGHUP: cint

  Source Edit

    SIGILL: cint

  Source Edit

    SIGINT: cint

  Source Edit

    SIGKILL: cint

  Source Edit

    SIGPIPE: cint

  Source Edit

    SIGQUIT: cint

  Source Edit

    SIGSEGV: cint

  Source Edit

    SIGSTOP: cint

  Source Edit

    SIGTERM: cint

  Source Edit

    SIGTSTP: cint

  Source Edit

    SIGTTIN: cint

  Source Edit

    SIGTTOU: cint

  Source Edit

    SIGUSR1: cint

  Source Edit

    SIGUSR2: cint

  Source Edit

    SIGPOLL: cint

  Source Edit

    SIGPROF: cint

  Source Edit

    SIGSYS: cint

  Source Edit

    SIGTRAP: cint

  Source Edit

    SIGURG: cint

  Source Edit

    SIGVTALRM: cint

  Source Edit

    SIGXCPU: cint

  Source Edit

    SIGXFSZ: cint

  Source Edit

    SA_NOCLDSTOP: cint

  Source Edit

    SIG_BLOCK: cint

  Source Edit

    SIG_UNBLOCK: cint

  Source Edit

    SIG_SETMASK: cint

  Source Edit

    SA_ONSTACK: cint

  Source Edit

    SA_RESETHAND: cint

  Source Edit

    SA_RESTART: cint

  Source Edit

    SA_SIGINFO: cint

  Source Edit

    SA_NOCLDWAIT: cint

  Source Edit

    SA_NODEFER: cint

  Source Edit

    SS_ONSTACK: cint

  Source Edit

    SS_DISABLE: cint

  Source Edit

    MINSIGSTKSZ: cint

  Source Edit

    SIGSTKSZ: cint

  Source Edit

    SIG_HOLD: Sighandler

  Source Edit

    SIG_DFL: Sighandler

  Source Edit

    SIG_ERR: Sighandler

  Source Edit

    SIG_IGN: Sighandler

  Source Edit

    IPC_CREAT: cint

  Source Edit

    IPC_EXCL: cint

  Source Edit

    IPC_NOWAIT: cint

  Source Edit

    IPC_PRIVATE: cint

  Source Edit

    IPC_RMID: cint

  Source Edit

    IPC_SET: cint

  Source Edit

    IPC_STAT: cint

  Source Edit

    PROT_READ: cint

  Source Edit

    PROT_WRITE: cint

  Source Edit

    PROT_EXEC: cint

  Source Edit

    PROT_NONE: cint

  Source Edit

    MAP_ANONYMOUS: cint

  Source Edit

    MAP_FIXED_NOREPLACE: cint

  Source Edit

    MAP_NORESERVE: cint

  Source Edit

    MAP_SHARED: cint

  Source Edit

    MAP_PRIVATE: cint

  Source Edit

    MAP_FIXED: cint

  Source Edit

    MS_ASYNC: cint

  Source Edit

    MS_SYNC: cint

  Source Edit

    MS_INVALIDATE: cint

  Source Edit

    MCL_CURRENT: cint

  Source Edit

    MCL_FUTURE: cint

  Source Edit

    MAP_FAILED: pointer

  Source Edit

    POSIX_MADV_NORMAL: cint

  Source Edit

    POSIX_MADV_SEQUENTIAL: cint

  Source Edit

    POSIX_MADV_RANDOM: cint

  Source Edit

    POSIX_MADV_WILLNEED: cint

  Source Edit

    POSIX_MADV_DONTNEED: cint

  Source Edit

    POSIX_TYPED_MEM_ALLOCATE: cint

  Source Edit

    POSIX_TYPED_MEM_ALLOCATE_CONTIG: cint

  Source Edit

    POSIX_TYPED_MEM_MAP_ALLOCATABLE: cint

  Source Edit

    RLIMIT_NOFILE: cint

  Source Edit

    FD_SETSIZE: cint

  Source Edit

    MSG_CTRUNC: cint

  Source Edit

    MSG_DONTROUTE: cint

  Source Edit

    MSG_EOR: cint

  Source Edit

    MSG_OOB: cint

  Source Edit

    SCM_RIGHTS: cint

  Source Edit

    SO_ACCEPTCONN: cint

  Source Edit

    SO_BROADCAST: cint

  Source Edit

    SO_DEBUG: cint

  Source Edit

    SO_DONTROUTE: cint

  Source Edit

    SO_ERROR: cint

  Source Edit

    SO_KEEPALIVE: cint

  Source Edit

    SO_LINGER: cint

  Source Edit

    SO_OOBINLINE: cint

  Source Edit

    SO_RCVBUF: cint

  Source Edit

    SO_RCVLOWAT: cint

  Source Edit

    SO_RCVTIMEO: cint

  Source Edit

    SO_REUSEADDR: cint

  Source Edit

    SO_SNDBUF: cint

  Source Edit

    SO_SNDLOWAT: cint

  Source Edit

    SO_SNDTIMEO: cint

  Source Edit

    SO_TYPE: cint

  Source Edit

    SOCK_DGRAM: cint

  Source Edit

    SOCK_RAW: cint

  Source Edit

    SOCK_SEQPACKET: cint

  Source Edit

    SOCK_STREAM: cint

  Source Edit

    SOL_SOCKET: cint

  Source Edit

    SOMAXCONN: cint

  Source Edit

    MSG_PEEK: cint

  Source Edit

    MSG_TRUNC: cint

  Source Edit

    MSG_WAITALL: cint

  Source Edit

    AF_INET: cint

  Source Edit

    AF_INET6: cint

  Source Edit

    AF_UNIX: cint

  Source Edit

    AF_UNSPEC: cint

  Source Edit

    SHUT_RD: cint

  Source Edit

    SHUT_RDWR: cint

  Source Edit

    SHUT_WR: cint

  Source Edit

    S_IFBLK: cint

  Source Edit

    S_IFCHR: cint

  Source Edit

    S_IFDIR: cint

  Source Edit

    S_IFIFO: cint

  Source Edit

    S_IFLNK: cint

  Source Edit

    S_IFMT: cint

  Source Edit

    S_IFREG: cint

  Source Edit

    S_IFSOCK: cint

  Source Edit

    S_IRGRP: cint

  Source Edit

    S_IROTH: cint

  Source Edit

    S_IRUSR: cint

  Source Edit

    S_IRWXG: cint

  Source Edit

    S_IRWXO: cint

  Source Edit

    S_IRWXU: cint

  Source Edit

    S_ISGID: cint

  Source Edit

    S_ISUID: cint

  Source Edit

    S_ISVTX: cint

  Source Edit

    S_IWGRP: cint

  Source Edit

    S_IWOTH: cint

  Source Edit

    S_IWUSR: cint

  Source Edit

    S_IXGRP: cint

  Source Edit

    S_IXOTH: cint

  Source Edit

    S_IXUSR: cint

  Source Edit

    ST_RDONLY: cint

  Source Edit

    ST_NOSUID: cint

  Source Edit

    WNOHANG: cint

  Source Edit

    WUNTRACED: cint

  Source Edit

    WEXITED: cint

  Source Edit

    WSTOPPED: cint

  Source Edit

    WCONTINUED: cint

  Source Edit

    WNOWAIT: cint

  Source Edit

    P_ALL: cint

  Source Edit

    P_PID: cint

  Source Edit

    P_PGID: cint

  Source Edit

    POSIX_SPAWN_RESETIDS: cint

  Source Edit

    POSIX_SPAWN_SETPGROUP: cint

  Source Edit

    POSIX_SPAWN_SETSCHEDPARAM: cint

  Source Edit

    POSIX_SPAWN_SETSCHEDULER: cint

  Source Edit

    POSIX_SPAWN_SETSIGDEF: cint

  Source Edit

    POSIX_SPAWN_SETSIGMASK: cint

  Source Edit

    IOFBF: cint

  Source Edit

    IONBF: cint

  Source Edit

    CLOCKS_PER_SEC: clong

  Source Edit

    CLOCK_PROCESS_CPUTIME_ID: cint

  Source Edit

    CLOCK_THREAD_CPUTIME_ID: cint

  Source Edit

    CLOCK_REALTIME: cint

  Source Edit

    TIMER_ABSTIME: cint

  Source Edit

    CLOCK_MONOTONIC: cint

  Source Edit

    POSIX_ASYNC_IO: cint

  Source Edit

    POSIX_PRIO_IO: cint

  Source Edit

    POSIX_SYNC_IO: cint

  Source Edit

    F_OK: cint

  Source Edit

    R_OK: cint

  Source Edit

    W_OK: cint

  Source Edit

    X_OK: cint

  Source Edit

    CS_PATH: cint

  Source Edit

    CS_POSIX_V6_ILP32_OFF32_CFLAGS: cint

  Source Edit

    CS_POSIX_V6_ILP32_OFF32_LDFLAGS: cint

  Source Edit

    CS_POSIX_V6_ILP32_OFF32_LIBS: cint

  Source Edit

    CS_POSIX_V6_ILP32_OFFBIG_CFLAGS: cint

  Source Edit

    CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS: cint

  Source Edit

    CS_POSIX_V6_ILP32_OFFBIG_LIBS: cint

  Source Edit

    CS_POSIX_V6_LP64_OFF64_CFLAGS: cint

  Source Edit

    CS_POSIX_V6_LP64_OFF64_LDFLAGS: cint

  Source Edit

    CS_POSIX_V6_LP64_OFF64_LIBS: cint

  Source Edit

    CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS: cint

  Source Edit

    CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS: cint

  Source Edit

    CS_POSIX_V6_LPBIG_OFFBIG_LIBS: cint

  Source Edit

    CS_POSIX_V6_WIDTH_RESTRICTED_ENVS: cint

  Source Edit

    F_LOCK: cint

  Source Edit

    F_TEST: cint

  Source Edit

    F_TLOCK: cint

  Source Edit

    F_ULOCK: cint

  Source Edit

    PC_2_SYMLINKS: cint

  Source Edit

    PC_ALLOC_SIZE_MIN: cint

  Source Edit

    PC_ASYNC_IO: cint

  Source Edit

    PC_CHOWN_RESTRICTED: cint

  Source Edit

    PC_FILESIZEBITS: cint

  Source Edit

    PC_LINK_MAX: cint

  Source Edit

    PC_MAX_CANON: cint

  Source Edit

    PC_MAX_INPUT: cint

  Source Edit

    PC_NAME_MAX: cint

  Source Edit

    PC_NO_TRUNC: cint

  Source Edit

    PC_PATH_MAX: cint

  Source Edit

    PC_PIPE_BUF: cint

  Source Edit

    PC_PRIO_IO: cint

  Source Edit

    PC_REC_INCR_XFER_SIZE: cint

  Source Edit

    PC_REC_MIN_XFER_SIZE: cint

  Source Edit

    PC_REC_XFER_ALIGN: cint

  Source Edit

    PC_SYMLINK_MAX: cint

  Source Edit

    PC_SYNC_IO: cint

  Source Edit

    PC_VDISABLE: cint

  Source Edit

    SC_2_C_BIND: cint

  Source Edit

    SC_2_C_DEV: cint

  Source Edit

    SC_2_CHAR_TERM: cint

  Source Edit

    SC_2_FORT_DEV: cint

  Source Edit

    SC_2_FORT_RUN: cint

  Source Edit

    SC_2_LOCALEDEF: cint

  Source Edit

    SC_2_PBS: cint

  Source Edit

    SC_2_PBS_ACCOUNTING: cint

  Source Edit

    SC_2_PBS_CHECKPOINT: cint

  Source Edit

    SC_2_PBS_LOCATE: cint

  Source Edit

    SC_2_PBS_MESSAGE: cint

  Source Edit

    SC_2_PBS_TRACK: cint

  Source Edit

    SC_2_SW_DEV: cint

  Source Edit

    SC_2_UPE: cint

  Source Edit

    SC_2_VERSION: cint

  Source Edit

    SC_ADVISORY_INFO: cint

  Source Edit

    SC_AIO_LISTIO_MAX: cint

  Source Edit

    SC_AIO_MAX: cint

  Source Edit

    SC_AIO_PRIO_DELTA_MAX: cint

  Source Edit

    SC_ARG_MAX: cint

  Source Edit

    SC_ASYNCHRONOUS_IO: cint

  Source Edit

    SC_ATEXIT_MAX: cint

  Source Edit

    SC_BARRIERS: cint

  Source Edit

    SC_BC_BASE_MAX: cint

  Source Edit

    SC_BC_DIM_MAX: cint

  Source Edit

    SC_BC_SCALE_MAX: cint

  Source Edit

    SC_BC_STRING_MAX: cint

  Source Edit

    SC_CHILD_MAX: cint

  Source Edit

    SC_CLK_TCK: cint

  Source Edit

    SC_CLOCK_SELECTION: cint

  Source Edit

    SC_COLL_WEIGHTS_MAX: cint

  Source Edit

    SC_CPUTIME: cint

  Source Edit

    SC_DELAYTIMER_MAX: cint

  Source Edit

    SC_EXPR_NEST_MAX: cint

  Source Edit

    SC_FSYNC: cint

  Source Edit

    SC_GETGR_R_SIZE_MAX: cint

  Source Edit

    SC_GETPW_R_SIZE_MAX: cint

  Source Edit

    SC_HOST_NAME_MAX: cint

  Source Edit

    SC_IOV_MAX: cint

  Source Edit

    SC_IPV6: cint

  Source Edit

    SC_JOB_CONTROL: cint

  Source Edit

    SC_LINE_MAX: cint

  Source Edit

    SC_LOGIN_NAME_MAX: cint

  Source Edit

    SC_MAPPED_FILES: cint

  Source Edit

    SC_MEMLOCK: cint

  Source Edit

    SC_MEMLOCK_RANGE: cint

  Source Edit

    SC_MEMORY_PROTECTION: cint

  Source Edit

    SC_MESSAGE_PASSING: cint

  Source Edit

    SC_MONOTONIC_CLOCK: cint

  Source Edit

    SC_MQ_OPEN_MAX: cint

  Source Edit

    SC_MQ_PRIO_MAX: cint

  Source Edit

    SC_NGROUPS_MAX: cint

  Source Edit

    SC_OPEN_MAX: cint

  Source Edit

    SC_PAGESIZE: cint

  Source Edit

    SC_PRIORITIZED_IO: cint

  Source Edit

    SC_PRIORITY_SCHEDULING: cint

  Source Edit

    SC_RAW_SOCKETS: cint

  Source Edit

    SC_RE_DUP_MAX: cint

  Source Edit

    SC_READER_WRITER_LOCKS: cint

  Source Edit

    SC_REALTIME_SIGNALS: cint

  Source Edit

    SC_REGEXP: cint

  Source Edit

    SC_RTSIG_MAX: cint

  Source Edit

    SC_SAVED_IDS: cint

  Source Edit

    SC_SEM_NSEMS_MAX: cint

  Source Edit

    SC_SEM_VALUE_MAX: cint

  Source Edit

    SC_SEMAPHORES: cint

  Source Edit

    SC_SHARED_MEMORY_OBJECTS: cint

  Source Edit

    SC_SHELL: cint

  Source Edit

    SC_SIGQUEUE_MAX: cint

  Source Edit

    SC_SPAWN: cint

  Source Edit

    SC_SPIN_LOCKS: cint

  Source Edit

    SC_SPORADIC_SERVER: cint

  Source Edit

    SC_SS_REPL_MAX: cint

  Source Edit

    SC_STREAM_MAX: cint

  Source Edit

    SC_SYMLOOP_MAX: cint

  Source Edit

    SC_SYNCHRONIZED_IO: cint

  Source Edit

    SC_THREAD_ATTR_STACKADDR: cint

  Source Edit

    SC_THREAD_ATTR_STACKSIZE: cint

  Source Edit

    SC_THREAD_CPUTIME: cint

  Source Edit

    SC_THREAD_DESTRUCTOR_ITERATIONS: cint

  Source Edit

    SC_THREAD_KEYS_MAX: cint

  Source Edit

    SC_THREAD_PRIO_INHERIT: cint

  Source Edit

    SC_THREAD_PRIO_PROTECT: cint

  Source Edit

    SC_THREAD_PRIORITY_SCHEDULING: cint

  Source Edit

    SC_THREAD_PROCESS_SHARED: cint

  Source Edit

    SC_THREAD_SAFE_FUNCTIONS: cint

  Source Edit

    SC_THREAD_SPORADIC_SERVER: cint

  Source Edit

    SC_THREAD_STACK_MIN: cint

  Source Edit

    SC_THREAD_THREADS_MAX: cint

  Source Edit

    SC_THREADS: cint

  Source Edit

    SC_TIMEOUTS: cint

  Source Edit

    SC_TIMER_MAX: cint

  Source Edit

    SC_TIMERS: cint

  Source Edit

    SC_TRACE: cint

  Source Edit

    SC_TRACE_EVENT_FILTER: cint

  Source Edit

    SC_TRACE_EVENT_NAME_MAX: cint

  Source Edit

    SC_TRACE_INHERIT: cint

  Source Edit

    SC_TRACE_LOG: cint

  Source Edit

    SC_TRACE_NAME_MAX: cint

  Source Edit

    SC_TRACE_SYS_MAX: cint

  Source Edit

    SC_TRACE_USER_EVENT_MAX: cint

  Source Edit

    SC_TTY_NAME_MAX: cint

  Source Edit

    SC_TYPED_MEMORY_OBJECTS: cint

  Source Edit

    SC_TZNAME_MAX: cint

  Source Edit

    SC_V6_ILP32_OFF32: cint

  Source Edit

    SC_V6_ILP32_OFFBIG: cint

  Source Edit

    SC_V6_LP64_OFF64: cint

  Source Edit

    SC_V6_LPBIG_OFFBIG: cint

  Source Edit

    SC_VERSION: cint

  Source Edit

    SC_XBS5_ILP32_OFF32: cint

  Source Edit

    SC_XBS5_ILP32_OFFBIG: cint

  Source Edit

    SC_XBS5_LP64_OFF64: cint

  Source Edit

    SC_XBS5_LPBIG_OFFBIG: cint

  Source Edit

    SC_XOPEN_CRYPT: cint

  Source Edit

    SC_XOPEN_ENH_I18N: cint

  Source Edit

    SC_XOPEN_LEGACY: cint

  Source Edit

    SC_XOPEN_REALTIME: cint

  Source Edit

    SC_XOPEN_REALTIME_THREADS: cint

  Source Edit

    SC_XOPEN_SHM: cint

  Source Edit

    SC_XOPEN_STREAMS: cint

  Source Edit

    SC_XOPEN_UNIX: cint

  Source Edit

    SC_XOPEN_VERSION: cint

  Source Edit

    SC_NPROCESSORS_ONLN: cint

  Source Edit

    SEEK_SET: cint

  Source Edit

    SEEK_CUR: cint

  Source Edit

    SEEK_END: cint

  Source Edit

    MAP_POPULATE: cint

  Populate (prefault) page tables for a mapping. Source Edit

    SOCK_CLOEXEC: cint

  Source Edit

    MSG_NOSIGNAL: cint

  No SIGPIPE generated when an attempt to send is made on a stream-oriented socket that is no longer connected. Source Edit

    in6addr_any: In6Addr

  Source Edit

    in6addr_loopback: In6Addr

  Source Edit

# Consts

    MM_NULLLBL = nil

  Source Edit

    MM_NULLSEV = 0

  Source Edit

    MM_NULLMC = 0

  Source Edit

    MM_NULLTXT = nil

  Source Edit

    MM_NULLACT = nil

  Source Edit

    MM_NULLTAG = nil

  Source Edit

    STDERR_FILENO = 2

  File number of stderr; Source Edit

    STDIN_FILENO = 0

  File number of stdin; Source Edit

    STDOUT_FILENO = 1

  File number of stdout; Source Edit

    DT_UNKNOWN = 0

  Unknown file type. Source Edit

    DT_FIFO = 1

  Named pipe, or FIFO. Source Edit

    DT_CHR = 2

  Character device. Source Edit

    DT_DIR = 4

  Directory. Source Edit

    DT_BLK = 6

  Block device. Source Edit

    DT_REG = 8

  Regular file. Source Edit

    DT_LNK = 10

  Symbolic link. Source Edit

    DT_SOCK = 12

  UNIX domain socket. Source Edit

    DT_WHT = 14

  Source Edit

    StatHasNanoseconds = true

  Boolean flag that indicates if the system supports nanosecond time resolution in the fields of `Stat`. Note that the nanosecond based fields (`Stat.st_atim`, `Stat.st_mtim` and `Stat.st_ctim`) can be accessed without checking this flag, because this module defines fallback procs when they are not available. Source Edit

    Sockaddr_un_path_length = 108

  Source Edit

    SO_REUSEPORT = 512'i32

  Multiple binding: load balancing on incoming TCP connections or UDP packets. (Requires Linux kernel > 3.9) Source Edit

    POSIX_SPAWN_USEVFORK = 64'i32

  Source Edit

    RUSAGE_SELF = 0'i32

  Source Edit

    RUSAGE_CHILDREN = -1'i32

  Source Edit

    RUSAGE_THREAD = 1'i32

  Source Edit

    INVALID_SOCKET = -1'i32

  Source Edit

# Procs

    proc WEXITSTATUS(s: cint): cint {...}{.importc, header: "<sys/wait.h>".}

  Exit code, if WIFEXITED(s) Source Edit

    proc WTERMSIG(s: cint): cint {...}{.importc, header: "<sys/wait.h>".}

  Termination signal, if WIFSIGNALED(s) Source Edit

    proc WSTOPSIG(s: cint): cint {...}{.importc, header: "<sys/wait.h>".}

  Stop signal, if WIFSTOPPED(s) Source Edit

    proc WIFEXITED(s: cint): bool {...}{.importc, header: "<sys/wait.h>".}

  True if child exited normally. Source Edit

    proc WIFSIGNALED(s: cint): bool {...}{.importc, header: "<sys/wait.h>".}

  True if child exited due to uncaught signal. Source Edit

    proc WIFSTOPPED(s: cint): bool {...}{.importc, header: "<sys/wait.h>".}

  True if child is currently stopped. Source Edit

    proc WIFCONTINUED(s: cint): bool {...}{.importc, header: "<sys/wait.h>".}

  True if child has been continued. Source Edit

    proc st_atime(s: Stat): Time {...}{.inline, raises: [], tags: [].}

  Second-granularity time of last access. Source Edit

    proc st_mtime(s: Stat): Time {...}{.inline, raises: [], tags: [].}

  Second-granularity time of last data modification. Source Edit

    proc st_ctime(s: Stat): Time {...}{.inline, raises: [], tags: [].}

  Second-granularity time of last status change. Source Edit

    proc aio_cancel(a1: cint; a2: ptr Taiocb): cint {...}{.importc, header: "<aio.h>".}

  Source Edit

    proc aio_error(a1: ptr Taiocb): cint {...}{.importc, header: "<aio.h>".}

  Source Edit

    proc aio_fsync(a1: cint; a2: ptr Taiocb): cint {...}{.importc, header: "<aio.h>".}

  Source Edit

    proc aio_read(a1: ptr Taiocb): cint {...}{.importc, header: "<aio.h>".}

  Source Edit

    proc aio_return(a1: ptr Taiocb): int {...}{.importc, header: "<aio.h>".}

  Source Edit

    proc aio_suspend(a1: ptr ptr Taiocb; a2: cint; a3: ptr Timespec): cint {...}{.
        importc, header: "<aio.h>".}

  Source Edit

    proc aio_write(a1: ptr Taiocb): cint {...}{.importc, header: "<aio.h>".}

  Source Edit

    proc lio_listio(a1: cint; a2: ptr ptr Taiocb; a3: cint; a4: ptr SigEvent): cint {...}{.
        importc, header: "<aio.h>".}

  Source Edit

    proc htonl(a1: uint32): uint32 {...}{.importc, header: "<arpa/inet.h>".}

  Source Edit

    proc htons(a1: uint16): uint16 {...}{.importc, header: "<arpa/inet.h>".}

  Source Edit

    proc ntohl(a1: uint32): uint32 {...}{.importc, header: "<arpa/inet.h>".}

  Source Edit

    proc ntohs(a1: uint16): uint16 {...}{.importc, header: "<arpa/inet.h>".}

  Source Edit

    proc inet_addr(a1: cstring): InAddrT {...}{.importc, header: "<arpa/inet.h>".}

  Source Edit

    proc inet_ntoa(a1: InAddr): cstring {...}{.importc, header: "<arpa/inet.h>".}

  Source Edit

    proc inet_ntop(a1: cint; a2: pointer; a3: cstring; a4: int32): cstring {...}{.
        importc: "(char *)$1", header: "<arpa/inet.h>".}

  Source Edit

    proc inet_pton(a1: cint; a2: cstring; a3: pointer): cint {...}{.importc,
        header: "<arpa/inet.h>".}

  Source Edit

    proc IN6ADDR_ANY_INIT(): In6Addr {...}{.importc, header: "<netinet/in.h>".}

  Source Edit

    proc IN6ADDR_LOOPBACK_INIT(): In6Addr {...}{.importc, header: "<netinet/in.h>".}

  Source Edit

    proc closedir(a1: ptr DIR): cint {...}{.importc, header: "<dirent.h>".}

  Source Edit

    proc opendir(a1: cstring): ptr DIR {...}{.importc, header: "<dirent.h>", sideEffect.}

  Source Edit

    proc readdir(a1: ptr DIR): ptr Dirent {...}{.importc, header: "<dirent.h>",
                                            sideEffect.}

  Source Edit

    proc readdir_r(a1: ptr DIR; a2: ptr Dirent; a3: ptr ptr Dirent): cint {...}{.importc,
        header: "<dirent.h>", sideEffect.}

  Source Edit

    proc rewinddir(a1: ptr DIR) {...}{.importc, header: "<dirent.h>".}

  Source Edit

    proc seekdir(a1: ptr DIR; a2: int) {...}{.importc, header: "<dirent.h>".}

  Source Edit

    proc telldir(a1: ptr DIR): int {...}{.importc, header: "<dirent.h>".}

  Source Edit

    proc dlclose(a1: pointer): cint {...}{.importc, header: "<dlfcn.h>", sideEffect.}

  Source Edit

    proc dlerror(): cstring {...}{.importc, header: "<dlfcn.h>", sideEffect.}

  Source Edit

    proc dlopen(a1: cstring; a2: cint): pointer {...}{.importc, header: "<dlfcn.h>",
        sideEffect.}

  Source Edit

    proc dlsym(a1: pointer; a2: cstring): pointer {...}{.importc, header: "<dlfcn.h>",
        sideEffect.}

  Source Edit

    proc creat(a1: cstring; a2: Mode): cint {...}{.importc, header: "<fcntl.h>",
        sideEffect.}

  Source Edit

    proc fcntl(a1: cint | SocketHandle; a2: cint): cint {...}{.varargs, importc,
        header: "<fcntl.h>", sideEffect.}

  Source Edit

    proc open(a1: cstring; a2: cint): cint {...}{.varargs, importc, header: "<fcntl.h>",
        sideEffect.}

  Source Edit

    proc posix_fadvise(a1: cint; a2, a3: Off; a4: cint): cint {...}{.importc,
        header: "<fcntl.h>".}

  Source Edit

    proc posix_fallocate(a1: cint; a2, a3: Off): cint {...}{.importc, header: "<fcntl.h>".}

  Source Edit

    proc fmtmsg(a1: int; a2: cstring; a3: cint; a4, a5, a6: cstring): cint {...}{.
        importc, header: "<fmtmsg.h>".}

  Source Edit

    proc fnmatch(a1, a2: cstring; a3: cint): cint {...}{.importc, header: "<fnmatch.h>".}

  Source Edit

    proc ftw(a1: cstring;
             a2: proc (x1: cstring; x2: ptr Stat; x3: cint): cint {...}{.noconv.};
             a3: cint): cint {...}{.importc, header: "<ftw.h>".}

  Source Edit

    proc nftw(a1: cstring; a2: proc (x1: cstring; x2: ptr Stat; x3: cint;
                                     x4: ptr FTW): cint {...}{.noconv.}; a3: cint;
              a4: cint): cint {...}{.importc, header: "<ftw.h>".}

  Source Edit

    proc glob(a1: cstring; a2: cint;
              a3: proc (x1: cstring; x2: cint): cint {...}{.noconv.}; a4: ptr Glob): cint {...}{.
        importc, header: "<glob.h>", sideEffect.}

  Filename globbing. Use os.walkPattern() and similar. Source Edit

    proc globfree(a1: ptr Glob) {...}{.importc, header: "<glob.h>".}

  Source Edit

    proc getgrgid(a1: Gid): ptr Group {...}{.importc, header: "<grp.h>".}

  Source Edit

    proc getgrnam(a1: cstring): ptr Group {...}{.importc, header: "<grp.h>".}

  Source Edit

    proc getgrgid_r(a1: Gid; a2: ptr Group; a3: cstring; a4: int; a5: ptr ptr Group): cint {...}{.
        importc, header: "<grp.h>".}

  Source Edit

    proc getgrnam_r(a1: cstring; a2: ptr Group; a3: cstring; a4: int;
                    a5: ptr ptr Group): cint {...}{.importc, header: "<grp.h>".}

  Source Edit

    proc getgrent(): ptr Group {...}{.importc, header: "<grp.h>".}

  Source Edit

    proc endgrent() {...}{.importc, header: "<grp.h>".}

  Source Edit

    proc setgrent() {...}{.importc, header: "<grp.h>".}

  Source Edit

    proc iconv_open(a1, a2: cstring): Iconv {...}{.importc, header: "<iconv.h>".}

  Source Edit

    proc iconv(a1: Iconv; a2: var cstring; a3: var int; a4: var cstring; a5: var int): int {...}{.
        importc, header: "<iconv.h>".}

  Source Edit

    proc iconv_close(a1: Iconv): cint {...}{.importc, header: "<iconv.h>".}

  Source Edit

    proc nl_langinfo(a1: Nl_item): cstring {...}{.importc, header: "<langinfo.h>".}

  Source Edit

    proc basename(a1: cstring): cstring {...}{.importc, header: "<libgen.h>".}

  Source Edit

    proc dirname(a1: cstring): cstring {...}{.importc, header: "<libgen.h>".}

  Source Edit

    proc localeconv(): ptr Lconv {...}{.importc, header: "<locale.h>".}

  Source Edit

    proc setlocale(a1: cint; a2: cstring): cstring {...}{.importc, header: "<locale.h>",
        sideEffect.}

  Source Edit

    proc strfmon(a1: cstring; a2: int; a3: cstring): int {...}{.varargs, importc,
        header: "<monetary.h>".}

  Source Edit

    proc mq_close(a1: Mqd): cint {...}{.importc, header: "<mqueue.h>".}

  Source Edit

    proc mq_getattr(a1: Mqd; a2: ptr MqAttr): cint {...}{.importc, header: "<mqueue.h>".}

  Source Edit

    proc mq_notify(a1: Mqd; a2: ptr SigEvent): cint {...}{.importc, header: "<mqueue.h>".}

  Source Edit

    proc mq_open(a1: cstring; a2: cint): Mqd {...}{.varargs, importc,
        header: "<mqueue.h>".}

  Source Edit

    proc mq_receive(a1: Mqd; a2: cstring; a3: int; a4: var int): int {...}{.importc,
        header: "<mqueue.h>".}

  Source Edit

    proc mq_send(a1: Mqd; a2: cstring; a3: int; a4: int): cint {...}{.importc,
        header: "<mqueue.h>".}

  Source Edit

    proc mq_setattr(a1: Mqd; a2, a3: ptr MqAttr): cint {...}{.importc,
        header: "<mqueue.h>".}

  Source Edit

    proc mq_timedreceive(a1: Mqd; a2: cstring; a3: int; a4: int; a5: ptr Timespec): int {...}{.
        importc, header: "<mqueue.h>".}

  Source Edit

    proc mq_timedsend(a1: Mqd; a2: cstring; a3: int; a4: int; a5: ptr Timespec): cint {...}{.
        importc, header: "<mqueue.h>".}

  Source Edit

    proc mq_unlink(a1: cstring): cint {...}{.importc, header: "<mqueue.h>".}

  Source Edit

    proc getpwnam(a1: cstring): ptr Passwd {...}{.importc, header: "<pwd.h>".}

  Source Edit

    proc getpwuid(a1: Uid): ptr Passwd {...}{.importc, header: "<pwd.h>".}

  Source Edit

    proc getpwnam_r(a1: cstring; a2: ptr Passwd; a3: cstring; a4: int;
                    a5: ptr ptr Passwd): cint {...}{.importc, header: "<pwd.h>".}

  Source Edit

    proc getpwuid_r(a1: Uid; a2: ptr Passwd; a3: cstring; a4: int;
                    a5: ptr ptr Passwd): cint {...}{.importc, header: "<pwd.h>".}

  Source Edit

    proc endpwent() {...}{.importc, header: "<pwd.h>".}

  Source Edit

    proc getpwent(): ptr Passwd {...}{.importc, header: "<pwd.h>".}

  Source Edit

    proc setpwent() {...}{.importc, header: "<pwd.h>".}

  Source Edit

    proc uname(a1: var Utsname): cint {...}{.importc, header: "<sys/utsname.h>".}

  Source Edit

    proc strerror(errnum: cint): cstring {...}{.importc, header: "<string.h>".}

  Source Edit

    proc pthread_atfork(a1, a2, a3: proc () {...}{.noconv.}): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_destroy(a1: ptr Pthread_attr): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_getdetachstate(a1: ptr Pthread_attr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_getguardsize(a1: ptr Pthread_attr; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_getinheritsched(a1: ptr Pthread_attr; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_getschedparam(a1: ptr Pthread_attr; a2: ptr Sched_param): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_getschedpolicy(a1: ptr Pthread_attr; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_getscope(a1: ptr Pthread_attr; a2: var cint): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_getstack(a1: ptr Pthread_attr; a2: var pointer; a3: var int): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_getstackaddr(a1: ptr Pthread_attr; a2: var pointer): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_getstacksize(a1: ptr Pthread_attr; a2: var int): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_init(a1: ptr Pthread_attr): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_setdetachstate(a1: ptr Pthread_attr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_setguardsize(a1: ptr Pthread_attr; a2: int): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_setinheritsched(a1: ptr Pthread_attr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_setschedparam(a1: ptr Pthread_attr; a2: ptr Sched_param): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_setschedpolicy(a1: ptr Pthread_attr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_setscope(a1: ptr Pthread_attr; a2: cint): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_setstack(a1: ptr Pthread_attr; a2: pointer; a3: int): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_setstackaddr(a1: ptr Pthread_attr; a2: pointer): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_attr_setstacksize(a1: ptr Pthread_attr; a2: int): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_barrier_destroy(a1: ptr Pthread_barrier): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_barrier_init(a1: ptr Pthread_barrier; a2: ptr Pthread_barrierattr;
                              a3: cint): cint {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_barrier_wait(a1: ptr Pthread_barrier): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_barrierattr_destroy(a1: ptr Pthread_barrierattr): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_barrierattr_getpshared(a1: ptr Pthread_barrierattr; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_barrierattr_init(a1: ptr Pthread_barrierattr): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_barrierattr_setpshared(a1: ptr Pthread_barrierattr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_cancel(a1: Pthread): cint {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_cleanup_push(a1: proc (x: pointer) {...}{.noconv.}; a2: pointer) {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_cleanup_pop(a1: cint) {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_cond_broadcast(a1: ptr Pthread_cond): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_cond_destroy(a1: ptr Pthread_cond): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_cond_init(a1: ptr Pthread_cond; a2: ptr Pthread_condattr): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_cond_signal(a1: ptr Pthread_cond): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_cond_timedwait(a1: ptr Pthread_cond; a2: ptr Pthread_mutex;
                                a3: ptr Timespec): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_cond_wait(a1: ptr Pthread_cond; a2: ptr Pthread_mutex): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_condattr_destroy(a1: ptr Pthread_condattr): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_condattr_getclock(a1: ptr Pthread_condattr; a2: var ClockId): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_condattr_getpshared(a1: ptr Pthread_condattr; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_condattr_init(a1: ptr Pthread_condattr): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_condattr_setclock(a1: ptr Pthread_condattr; a2: ClockId): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_condattr_setpshared(a1: ptr Pthread_condattr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_create(a1: ptr Pthread; a2: ptr Pthread_attr;
                        a3: proc (x: pointer): pointer {...}{.noconv.}; a4: pointer): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_detach(a1: Pthread): cint {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_equal(a1, a2: Pthread): cint {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_exit(a1: pointer) {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_getconcurrency(): cint {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_getcpuclockid(a1: Pthread; a2: var ClockId): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_getschedparam(a1: Pthread; a2: var cint; a3: ptr Sched_param): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_getspecific(a1: Pthread_key): pointer {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_join(a1: Pthread; a2: ptr pointer): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_key_create(a1: ptr Pthread_key; a2: proc (x: pointer) {...}{.noconv.}): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_key_delete(a1: Pthread_key): cint {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutex_destroy(a1: ptr Pthread_mutex): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_mutex_getprioceiling(a1: ptr Pthread_mutex; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutex_init(a1: ptr Pthread_mutex; a2: ptr Pthread_mutexattr): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutex_lock(a1: ptr Pthread_mutex): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_mutex_setprioceiling(a1: ptr Pthread_mutex; a2: cint; a3: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutex_timedlock(a1: ptr Pthread_mutex; a2: ptr Timespec): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutex_trylock(a1: ptr Pthread_mutex): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_mutex_unlock(a1: ptr Pthread_mutex): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_mutexattr_destroy(a1: ptr Pthread_mutexattr): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_mutexattr_getprioceiling(a1: ptr Pthread_mutexattr; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutexattr_getprotocol(a1: ptr Pthread_mutexattr; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutexattr_getpshared(a1: ptr Pthread_mutexattr; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutexattr_gettype(a1: ptr Pthread_mutexattr; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutexattr_init(a1: ptr Pthread_mutexattr): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_mutexattr_setprioceiling(a1: ptr Pthread_mutexattr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutexattr_setprotocol(a1: ptr Pthread_mutexattr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutexattr_setpshared(a1: ptr Pthread_mutexattr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_mutexattr_settype(a1: ptr Pthread_mutexattr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_once(a1: ptr Pthread_once; a2: proc () {...}{.noconv.}): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlock_destroy(a1: ptr Pthread_rwlock): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlock_init(a1: ptr Pthread_rwlock; a2: ptr Pthread_rwlockattr): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlock_rdlock(a1: ptr Pthread_rwlock): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlock_timedrdlock(a1: ptr Pthread_rwlock; a2: ptr Timespec): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlock_timedwrlock(a1: ptr Pthread_rwlock; a2: ptr Timespec): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlock_tryrdlock(a1: ptr Pthread_rwlock): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlock_trywrlock(a1: ptr Pthread_rwlock): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlock_unlock(a1: ptr Pthread_rwlock): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlock_wrlock(a1: ptr Pthread_rwlock): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlockattr_destroy(a1: ptr Pthread_rwlockattr): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlockattr_getpshared(a1: ptr Pthread_rwlockattr; a2: var cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlockattr_init(a1: ptr Pthread_rwlockattr): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_rwlockattr_setpshared(a1: ptr Pthread_rwlockattr; a2: cint): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_self(): Pthread {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_setcancelstate(a1: cint; a2: var cint): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_setcanceltype(a1: cint; a2: var cint): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_setconcurrency(a1: cint): cint {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_setschedparam(a1: Pthread; a2: cint; a3: ptr Sched_param): cint {...}{.
        importc, header: "<pthread.h>".}

  Source Edit

    proc pthread_setschedprio(a1: Pthread; a2: cint): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_setspecific(a1: Pthread_key; a2: pointer): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_spin_destroy(a1: ptr Pthread_spinlock): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_spin_init(a1: ptr Pthread_spinlock; a2: cint): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_spin_lock(a1: ptr Pthread_spinlock): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_spin_trylock(a1: ptr Pthread_spinlock): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_spin_unlock(a1: ptr Pthread_spinlock): cint {...}{.importc,
        header: "<pthread.h>".}

  Source Edit

    proc pthread_testcancel() {...}{.importc, header: "<pthread.h>".}

  Source Edit

    proc exitnow(code: int): void {...}{.importc: "_exit", header: "<unistd.h>".}

  Source Edit

    proc access(a1: cstring; a2: cint): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc alarm(a1: cint): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc chdir(a1: cstring): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc chown(a1: cstring; a2: Uid; a3: Gid): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc close(a1: cint | SocketHandle): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc confstr(a1: cint; a2: cstring; a3: int): int {...}{.importc,
        header: "<unistd.h>".}

  Source Edit

    proc crypt(a1, a2: cstring): cstring {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc ctermid(a1: cstring): cstring {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc dup(a1: cint): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc dup2(a1, a2: cint): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc encrypt(a1: array[0 .. 63, char]; a2: cint) {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc execl(a1, a2: cstring): cint {...}{.varargs, importc, header: "<unistd.h>",
                                        sideEffect.}

  Source Edit

    proc execle(a1, a2: cstring): cint {...}{.varargs, importc, header: "<unistd.h>",
                                         sideEffect.}

  Source Edit

    proc execlp(a1, a2: cstring): cint {...}{.varargs, importc, header: "<unistd.h>",
                                         sideEffect.}

  Source Edit

    proc execv(a1: cstring; a2: cstringArray): cint {...}{.importc, header: "<unistd.h>",
        sideEffect.}

  Source Edit

    proc execve(a1: cstring; a2, a3: cstringArray): cint {...}{.importc,
        header: "<unistd.h>", sideEffect.}

  Source Edit

    proc execvp(a1: cstring; a2: cstringArray): cint {...}{.importc,
        header: "<unistd.h>", sideEffect.}

  Source Edit

    proc execvpe(a1: cstring; a2: cstringArray; a3: cstringArray): cint {...}{.importc,
        header: "<unistd.h>", sideEffect.}

  Source Edit

    proc fchown(a1: cint; a2: Uid; a3: Gid): cint {...}{.importc, header: "<unistd.h>",
        sideEffect.}

  Source Edit

    proc fchdir(a1: cint): cint {...}{.importc, header: "<unistd.h>", sideEffect.}

  Source Edit

    proc fdatasync(a1: cint): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc fork(): Pid {...}{.importc, header: "<unistd.h>", sideEffect.}

  Source Edit

    proc fpathconf(a1, a2: cint): int {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc fsync(a1: cint): cint {...}{.importc, header: "<unistd.h>".}

  synchronize a file's buffer cache to the storage device Source Edit

    proc ftruncate(a1: cint; a2: Off): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc getcwd(a1: cstring; a2: int): cstring {...}{.importc, header: "<unistd.h>",
        sideEffect.}

  Source Edit

    proc getuid(): Uid {...}{.importc, header: "<unistd.h>", sideEffect.}

  returns the real user ID of the calling process Source Edit

    proc geteuid(): Uid {...}{.importc, header: "<unistd.h>", sideEffect.}

  returns the effective user ID of the calling process Source Edit

    proc getgid(): Gid {...}{.importc, header: "<unistd.h>", sideEffect.}

  returns the real group ID of the calling process Source Edit

    proc getegid(): Gid {...}{.importc, header: "<unistd.h>", sideEffect.}

  returns the effective group ID of the calling process Source Edit

    proc getgroups(a1: cint; a2: ptr array[0 .. 255, Gid]): cint {...}{.importc,
        header: "<unistd.h>".}

  Source Edit

    proc gethostid(): int {...}{.importc, header: "<unistd.h>", sideEffect.}

  Source Edit

    proc gethostname(a1: cstring; a2: int): cint {...}{.importc, header: "<unistd.h>",
        sideEffect.}

  Source Edit

    proc getlogin(): cstring {...}{.importc, header: "<unistd.h>", sideEffect.}

  Source Edit

    proc getlogin_r(a1: cstring; a2: int): cint {...}{.importc, header: "<unistd.h>",
        sideEffect.}

  Source Edit

    proc getopt(a1: cint; a2: cstringArray; a3: cstring): cint {...}{.importc,
        header: "<unistd.h>".}

  Source Edit

    proc getpgid(a1: Pid): Pid {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc getpgrp(): Pid {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc getpid(): Pid {...}{.importc, header: "<unistd.h>", sideEffect.}

  returns the process ID (PID) of the calling process Source Edit

    proc getppid(): Pid {...}{.importc, header: "<unistd.h>", sideEffect.}

  returns the process ID of the parent of the calling process Source Edit

    proc getsid(a1: Pid): Pid {...}{.importc, header: "<unistd.h>", sideEffect.}

  returns the session ID of the calling process Source Edit

    proc getwd(a1: cstring): cstring {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc isatty(a1: cint): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc lchown(a1: cstring; a2: Uid; a3: Gid): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc link(a1, a2: cstring): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc lockf(a1, a2: cint; a3: Off): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc lseek(a1: cint; a2: Off; a3: cint): Off {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc nice(a1: cint): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc pathconf(a1: cstring; a2: cint): int {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc pause(): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc pclose(a: File): cint {...}{.importc, header: "<stdio.h>".}

  Source Edit

    proc pipe(a: array[0 .. 1, cint]): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc popen(a1, a2: cstring): File {...}{.importc, header: "<stdio.h>".}

  Source Edit

    proc pread(a1: cint; a2: pointer; a3: int; a4: Off): int {...}{.importc,
        header: "<unistd.h>".}

  Source Edit

    proc pwrite(a1: cint; a2: pointer; a3: int; a4: Off): int {...}{.importc,
        header: "<unistd.h>".}

  Source Edit

    proc read(a1: cint; a2: pointer; a3: int): int {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc readlink(a1, a2: cstring; a3: int): int {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc ioctl(f: FileHandle; device: uint): int {...}{.importc: "ioctl",
        header: "<sys/ioctl.h>", varargs, tags: [WriteIOEffect].}

  A system call for device-specific input/output operations and other operations which cannot be expressed by regular system calls Source Edit

    proc rmdir(a1: cstring): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc setegid(a1: Gid): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc seteuid(a1: Uid): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc setgid(a1: Gid): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc setpgid(a1, a2: Pid): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc setpgrp(): Pid {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc setregid(a1, a2: Gid): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc setreuid(a1, a2: Uid): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc setsid(): Pid {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc setuid(a1: Uid): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc sleep(a1: cint): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc swab(a1, a2: pointer; a3: int) {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc symlink(a1, a2: cstring): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc sync() {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc sysconf(a1: cint): int {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc tcgetpgrp(a1: cint): Pid {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc tcsetpgrp(a1: cint; a2: Pid): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc truncate(a1: cstring; a2: Off): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc ttyname(a1: cint): cstring {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc ttyname_r(a1: cint; a2: cstring; a3: int): cint {...}{.importc,
        header: "<unistd.h>".}

  Source Edit

    proc ualarm(a1, a2: Useconds): Useconds {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc unlink(a1: cstring): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc usleep(a1: Useconds): cint {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc vfork(): Pid {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc write(a1: cint; a2: pointer; a3: int): int {...}{.importc, header: "<unistd.h>".}

  Source Edit

    proc sem_close(a1: ptr Sem): cint {...}{.importc, header: "<semaphore.h>".}

  Source Edit

    proc sem_destroy(a1: ptr Sem): cint {...}{.importc, header: "<semaphore.h>".}

  Source Edit

    proc sem_getvalue(a1: ptr Sem; a2: var cint): cint {...}{.importc,
        header: "<semaphore.h>".}

  Source Edit

    proc sem_init(a1: ptr Sem; a2: cint; a3: cint): cint {...}{.importc,
        header: "<semaphore.h>".}

  Source Edit

    proc sem_open(a1: cstring; a2: cint): ptr Sem {...}{.varargs, importc,
        header: "<semaphore.h>".}

  Source Edit

    proc sem_post(a1: ptr Sem): cint {...}{.importc, header: "<semaphore.h>".}

  Source Edit

    proc sem_timedwait(a1: ptr Sem; a2: ptr Timespec): cint {...}{.importc,
        header: "<semaphore.h>".}

  Source Edit

    proc sem_trywait(a1: ptr Sem): cint {...}{.importc, header: "<semaphore.h>".}

  Source Edit

    proc sem_unlink(a1: cstring): cint {...}{.importc, header: "<semaphore.h>".}

  Source Edit

    proc sem_wait(a1: ptr Sem): cint {...}{.importc, header: "<semaphore.h>".}

  Source Edit

    proc ftok(a1: cstring; a2: cint): Key {...}{.importc, header: "<sys/ipc.h>".}

  Source Edit

    proc statvfs(a1: cstring; a2: var Statvfs): cint {...}{.importc,
        header: "<sys/statvfs.h>".}

  Source Edit

    proc fstatvfs(a1: cint; a2: var Statvfs): cint {...}{.importc,
        header: "<sys/statvfs.h>".}

  Source Edit

    proc chmod(a1: cstring; a2: Mode): cint {...}{.importc, header: "<sys/stat.h>",
        sideEffect.}

  Source Edit

    proc fchmod(a1: cint; a2: Mode): cint {...}{.importc, header: "<sys/stat.h>",
                                            sideEffect.}

  Source Edit

    proc fstat(a1: cint; a2: var Stat): cint {...}{.importc, header: "<sys/stat.h>",
        sideEffect.}

  Source Edit

    proc lstat(a1: cstring; a2: var Stat): cint {...}{.importc, header: "<sys/stat.h>",
        sideEffect.}

  Source Edit

    proc mkdir(a1: cstring; a2: Mode): cint {...}{.importc, header: "<sys/stat.h>",
        sideEffect.}

  Use os.createDir() and similar. Source Edit

    proc mkfifo(a1: cstring; a2: Mode): cint {...}{.importc, header: "<sys/stat.h>".}

  Source Edit

    proc mknod(a1: cstring; a2: Mode; a3: Dev): cint {...}{.importc,
        header: "<sys/stat.h>".}

  Source Edit

    proc stat(a1: cstring; a2: var Stat): cint {...}{.importc, header: "<sys/stat.h>".}

  Source Edit

    proc umask(a1: Mode): Mode {...}{.importc, header: "<sys/stat.h>".}

  Source Edit

    proc S_ISBLK(m: Mode): bool {...}{.importc, header: "<sys/stat.h>".}

  Test for a block special file. Source Edit

    proc S_ISCHR(m: Mode): bool {...}{.importc, header: "<sys/stat.h>".}

  Test for a character special file. Source Edit

    proc S_ISDIR(m: Mode): bool {...}{.importc, header: "<sys/stat.h>".}

  Test for a directory. Source Edit

    proc S_ISFIFO(m: Mode): bool {...}{.importc, header: "<sys/stat.h>".}

  Test for a pipe or FIFO special file. Source Edit

    proc S_ISREG(m: Mode): bool {...}{.importc, header: "<sys/stat.h>".}

  Test for a regular file. Source Edit

    proc S_ISLNK(m: Mode): bool {...}{.importc, header: "<sys/stat.h>".}

  Test for a symbolic link. Source Edit

    proc S_ISSOCK(m: Mode): bool {...}{.importc, header: "<sys/stat.h>".}

  Test for a socket. Source Edit

    proc S_TYPEISMQ(buf: var Stat): bool {...}{.importc, header: "<sys/stat.h>".}

  Test for a message queue. Source Edit

    proc S_TYPEISSEM(buf: var Stat): bool {...}{.importc, header: "<sys/stat.h>".}

  Test for a semaphore. Source Edit

    proc S_TYPEISSHM(buf: var Stat): bool {...}{.importc, header: "<sys/stat.h>".}

  Test for a shared memory object. Source Edit

    proc S_TYPEISTMO(buf: var Stat): bool {...}{.importc, header: "<sys/stat.h>".}

  Test macro for a typed memory object. Source Edit

    proc mlock(a1: pointer; a2: int): cint {...}{.importc, header: "<sys/mman.h>".}

  Source Edit

    proc mlockall(a1: cint): cint {...}{.importc, header: "<sys/mman.h>".}

  Source Edit

    proc mmap(a1: pointer; a2: int; a3, a4, a5: cint; a6: Off): pointer {...}{.importc,
        header: "<sys/mman.h>".}

  Source Edit

    proc mprotect(a1: pointer; a2: int; a3: cint): cint {...}{.importc,
        header: "<sys/mman.h>".}

  Source Edit

    proc msync(a1: pointer; a2: int; a3: cint): cint {...}{.importc,
        header: "<sys/mman.h>".}

  Source Edit

    proc munlock(a1: pointer; a2: int): cint {...}{.importc, header: "<sys/mman.h>".}

  Source Edit

    proc munlockall(): cint {...}{.importc, header: "<sys/mman.h>".}

  Source Edit

    proc munmap(a1: pointer; a2: int): cint {...}{.importc, header: "<sys/mman.h>".}

  Source Edit

    proc posix_madvise(a1: pointer; a2: int; a3: cint): cint {...}{.importc,
        header: "<sys/mman.h>".}

  Source Edit

    proc posix_mem_offset(a1: pointer; a2: int; a3: var Off; a4: var int;
                          a5: var cint): cint {...}{.importc, header: "<sys/mman.h>".}

  Source Edit

    proc posix_typed_mem_get_info(a1: cint; a2: var Posix_typed_mem_info): cint {...}{.
        importc, header: "<sys/mman.h>".}

  Source Edit

    proc posix_typed_mem_open(a1: cstring; a2, a3: cint): cint {...}{.importc,
        header: "<sys/mman.h>".}

  Source Edit

    proc shm_open(a1: cstring; a2: cint; a3: Mode): cint {...}{.importc,
        header: "<sys/mman.h>".}

  Source Edit

    proc shm_unlink(a1: cstring): cint {...}{.importc, header: "<sys/mman.h>".}

  Source Edit

    proc asctime(a1: var Tm): cstring {...}{.importc, header: "<time.h>".}

  Source Edit

    proc asctime_r(a1: var Tm; a2: cstring): cstring {...}{.importc, header: "<time.h>".}

  Source Edit

    proc clock(): Clock {...}{.importc, header: "<time.h>", sideEffect.}

  Source Edit

    proc clock_getcpuclockid(a1: Pid; a2: var ClockId): cint {...}{.importc,
        header: "<time.h>", sideEffect.}

  Source Edit

    proc clock_getres(a1: ClockId; a2: var Timespec): cint {...}{.importc,
        header: "<time.h>", sideEffect.}

  Source Edit

    proc clock_gettime(a1: ClockId; a2: var Timespec): cint {...}{.importc,
        header: "<time.h>", sideEffect.}

  Source Edit

    proc clock_nanosleep(a1: ClockId; a2: cint; a3: var Timespec; a4: var Timespec): cint {...}{.
        importc, header: "<time.h>", sideEffect.}

  Source Edit

    proc clock_settime(a1: ClockId; a2: var Timespec): cint {...}{.importc,
        header: "<time.h>", sideEffect.}

  Source Edit

    proc `==`(a, b: Time): bool {...}{.borrow.}

  Source Edit

    proc `-`(a, b: Time): Time {...}{.borrow.}

  Source Edit

    proc ctime(a1: var Time): cstring {...}{.importc, header: "<time.h>".}

  Source Edit

    proc ctime_r(a1: var Time; a2: cstring): cstring {...}{.importc, header: "<time.h>".}

  Source Edit

    proc difftime(a1, a2: Time): cdouble {...}{.importc, header: "<time.h>".}

  Source Edit

    proc getdate(a1: cstring): ptr Tm {...}{.importc, header: "<time.h>".}

  Source Edit

    proc gmtime(a1: var Time): ptr Tm {...}{.importc, header: "<time.h>".}

  Source Edit

    proc gmtime_r(a1: var Time; a2: var Tm): ptr Tm {...}{.importc, header: "<time.h>".}

  Source Edit

    proc localtime(a1: var Time): ptr Tm {...}{.importc, header: "<time.h>".}

  Source Edit

    proc localtime_r(a1: var Time; a2: var Tm): ptr Tm {...}{.importc, header: "<time.h>".}

  Source Edit

    proc mktime(a1: var Tm): Time {...}{.importc, header: "<time.h>".}

  Source Edit

    proc timegm(a1: var Tm): Time {...}{.importc, header: "<time.h>".}

  Source Edit

    proc nanosleep(a1, a2: var Timespec): cint {...}{.importc, header: "<time.h>",
        sideEffect.}

  Source Edit

    proc strftime(a1: cstring; a2: int; a3: cstring; a4: var Tm): int {...}{.importc,
        header: "<time.h>".}

  Source Edit

    proc strptime(a1, a2: cstring; a3: var Tm): cstring {...}{.importc,
        header: "<time.h>".}

  Source Edit

    proc time(a1: var Time): Time {...}{.importc, header: "<time.h>", sideEffect.}

  Source Edit

    proc timer_create(a1: ClockId; a2: var SigEvent; a3: var Timer): cint {...}{.importc,
        header: "<time.h>".}

  Source Edit

    proc timer_delete(a1: Timer): cint {...}{.importc, header: "<time.h>".}

  Source Edit

    proc timer_gettime(a1: Timer; a2: var Itimerspec): cint {...}{.importc,
        header: "<time.h>".}

  Source Edit

    proc timer_getoverrun(a1: Timer): cint {...}{.importc, header: "<time.h>".}

  Source Edit

    proc timer_settime(a1: Timer; a2: cint; a3: var Itimerspec; a4: var Itimerspec): cint {...}{.
        importc, header: "<time.h>".}

  Source Edit

    proc tzset() {...}{.importc, header: "<time.h>".}

  Source Edit

    proc wait(a1: ptr cint): Pid {...}{.importc, discardable, header: "<sys/wait.h>",
                                   sideEffect.}

  Source Edit

    proc waitid(a1: cint; a2: Id; a3: var SigInfo; a4: cint): cint {...}{.importc,
        header: "<sys/wait.h>", sideEffect.}

  Source Edit

    proc waitpid(a1: Pid; a2: var cint; a3: cint): Pid {...}{.importc,
        header: "<sys/wait.h>", sideEffect.}

  Source Edit

    proc wait4(pid: Pid; status: ptr cint; options: cint; rusage: ptr Rusage): Pid {...}{.
        importc, header: "<sys/wait.h>", sideEffect.}

  Source Edit

    proc getrusage(who: cint; rusage: ptr Rusage): cint {...}{.importc,
        header: "<sys/resource.h>", discardable.}

  Source Edit

    proc bsd_signal(a1: cint; a2: proc (x: pointer) {...}{.noconv.}) {...}{.importc,
        header: "<signal.h>".}

  Source Edit

    proc kill(a1: Pid; a2: cint): cint {...}{.importc, header: "<signal.h>", sideEffect.}

  Source Edit

    proc killpg(a1: Pid; a2: cint): cint {...}{.importc, header: "<signal.h>", sideEffect.}

  Source Edit

    proc pthread_kill(a1: Pthread; a2: cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc pthread_sigmask(a1: cint; a2, a3: var Sigset): cint {...}{.importc,
        header: "<signal.h>".}

  Source Edit

    proc `raise`(a1: cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigaction(a1: cint; a2, a3: var Sigaction): cint {...}{.importc,
        header: "<signal.h>".}

  Source Edit

    proc sigaction(a1: cint; a2: var Sigaction; a3: ptr Sigaction = nil): cint {...}{.
        importc, header: "<signal.h>".}

  Source Edit

    proc sigaddset(a1: var Sigset; a2: cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigaltstack(a1, a2: var Stack): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigdelset(a1: var Sigset; a2: cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigemptyset(a1: var Sigset): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigfillset(a1: var Sigset): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sighold(a1: cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigignore(a1: cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc siginterrupt(a1, a2: cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigismember(a1: var Sigset; a2: cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc signal(a1: cint; a2: Sighandler) {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigpause(a1: cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigpending(a1: var Sigset): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigprocmask(a1: cint; a2, a3: var Sigset): cint {...}{.importc,
        header: "<signal.h>".}

  Source Edit

    proc sigqueue(a1: Pid; a2: cint; a3: SigVal): cint {...}{.importc,
        header: "<signal.h>".}

  Source Edit

    proc sigrelse(a1: cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigset(a1: int; a2: proc (x: cint) {...}{.noconv.}) {...}{.importc,
        header: "<signal.h>".}

  Source Edit

    proc sigsuspend(a1: var Sigset): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigtimedwait(a1: var Sigset; a2: var SigInfo; a3: var Timespec): cint {...}{.
        importc, header: "<signal.h>".}

  Source Edit

    proc sigwait(a1: var Sigset; a2: var cint): cint {...}{.importc, header: "<signal.h>".}

  Source Edit

    proc sigwaitinfo(a1: var Sigset; a2: var SigInfo): cint {...}{.importc,
        header: "<signal.h>".}

  Source Edit

    proc catclose(a1: Nl_catd): cint {...}{.importc, header: "<nl_types.h>".}

  Source Edit

    proc catgets(a1: Nl_catd; a2, a3: cint; a4: cstring): cstring {...}{.importc,
        header: "<nl_types.h>".}

  Source Edit

    proc catopen(a1: cstring; a2: cint): Nl_catd {...}{.importc, header: "<nl_types.h>".}

  Source Edit

    proc sched_get_priority_max(a1: cint): cint {...}{.importc, header: "<sched.h>".}

  Source Edit

    proc sched_get_priority_min(a1: cint): cint {...}{.importc, header: "<sched.h>".}

  Source Edit

    proc sched_getparam(a1: Pid; a2: var Sched_param): cint {...}{.importc,
        header: "<sched.h>".}

  Source Edit

    proc sched_getscheduler(a1: Pid): cint {...}{.importc, header: "<sched.h>".}

  Source Edit

    proc sched_rr_get_interval(a1: Pid; a2: var Timespec): cint {...}{.importc,
        header: "<sched.h>".}

  Source Edit

    proc sched_setparam(a1: Pid; a2: var Sched_param): cint {...}{.importc,
        header: "<sched.h>".}

  Source Edit

    proc sched_setscheduler(a1: Pid; a2: cint; a3: var Sched_param): cint {...}{.importc,
        header: "<sched.h>".}

  Source Edit

    proc sched_yield(): cint {...}{.importc, header: "<sched.h>".}

  Source Edit

    proc hstrerror(herrnum: cint): cstring {...}{.importc: "(char *)$1",
        header: "<netdb.h>".}

  Source Edit

    proc FD_CLR(a1: cint; a2: var TFdSet) {...}{.importc, header: "<sys/select.h>".}

  Source Edit

    proc FD_ISSET(a1: cint | SocketHandle; a2: var TFdSet): cint {...}{.importc,
        header: "<sys/select.h>".}

  Source Edit

    proc FD_SET(a1: cint | SocketHandle; a2: var TFdSet) {...}{.importc: "FD_SET",
        header: "<sys/select.h>".}

  Source Edit

    proc FD_ZERO(a1: var TFdSet) {...}{.importc, header: "<sys/select.h>".}

  Source Edit

    proc pselect(a1: cint; a2, a3, a4: ptr TFdSet; a5: ptr Timespec; a6: var Sigset): cint {...}{.
        importc, header: "<sys/select.h>".}

  Source Edit

    proc select(a1: cint | SocketHandle; a2, a3, a4: ptr TFdSet; a5: ptr Timeval): cint {...}{.
        importc, header: "<sys/select.h>".}

  Source Edit

    proc posix_spawn(a1: var Pid; a2: cstring; a3: var Tposix_spawn_file_actions;
                     a4: var Tposix_spawnattr; a5, a6: cstringArray): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawn_file_actions_addclose(a1: var Tposix_spawn_file_actions;
                                           a2: cint): cint {...}{.importc,
        header: "<spawn.h>".}

  Source Edit

    proc posix_spawn_file_actions_adddup2(a1: var Tposix_spawn_file_actions;
                                          a2, a3: cint): cint {...}{.importc,
        header: "<spawn.h>".}

  Source Edit

    proc posix_spawn_file_actions_addopen(a1: var Tposix_spawn_file_actions;
                                          a2: cint; a3: cstring; a4: cint; a5: Mode): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawn_file_actions_destroy(a1: var Tposix_spawn_file_actions): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawn_file_actions_init(a1: var Tposix_spawn_file_actions): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_destroy(a1: var Tposix_spawnattr): cint {...}{.importc,
        header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_getsigdefault(a1: var Tposix_spawnattr; a2: var Sigset): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_getflags(a1: var Tposix_spawnattr; a2: var cshort): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_getpgroup(a1: var Tposix_spawnattr; a2: var Pid): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_getschedparam(a1: var Tposix_spawnattr; a2: var Sched_param): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_getschedpolicy(a1: var Tposix_spawnattr; a2: var cint): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_getsigmask(a1: var Tposix_spawnattr; a2: var Sigset): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_init(a1: var Tposix_spawnattr): cint {...}{.importc,
        header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_setsigdefault(a1: var Tposix_spawnattr; a2: var Sigset): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_setflags(a1: var Tposix_spawnattr; a2: cint): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_setpgroup(a1: var Tposix_spawnattr; a2: Pid): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_setschedparam(a1: var Tposix_spawnattr; a2: var Sched_param): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_setschedpolicy(a1: var Tposix_spawnattr; a2: cint): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnattr_setsigmask(a1: var Tposix_spawnattr; a2: var Sigset): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc posix_spawnp(a1: var Pid; a2: cstring; a3: var Tposix_spawn_file_actions;
                      a4: var Tposix_spawnattr; a5, a6: cstringArray): cint {...}{.
        importc, header: "<spawn.h>".}

  Source Edit

    proc getcontext(a1: var Ucontext): cint {...}{.importc, header: "<ucontext.h>".}

  Source Edit

    proc makecontext(a1: var Ucontext; a4: proc () {...}{.noconv.}; a3: cint) {...}{.varargs,
        importc, header: "<ucontext.h>".}

  Source Edit

    proc setcontext(a1: var Ucontext): cint {...}{.importc, header: "<ucontext.h>".}

  Source Edit

    proc swapcontext(a1, a2: var Ucontext): cint {...}{.importc, header: "<ucontext.h>".}

  Source Edit

    proc readv(a1: cint; a2: ptr IOVec; a3: cint): int {...}{.importc,
        header: "<sys/uio.h>".}

  Source Edit

    proc writev(a1: cint; a2: ptr IOVec; a3: cint): int {...}{.importc,
        header: "<sys/uio.h>".}

  Source Edit

    proc CMSG_DATA(cmsg: ptr Tcmsghdr): cstring {...}{.importc, header: "<sys/socket.h>".}

  Source Edit

    proc CMSG_NXTHDR(mhdr: ptr Tmsghdr; cmsg: ptr Tcmsghdr): ptr Tcmsghdr {...}{.importc,
        header: "<sys/socket.h>".}

  Source Edit

    proc CMSG_FIRSTHDR(mhdr: ptr Tmsghdr): ptr Tcmsghdr {...}{.importc,
        header: "<sys/socket.h>".}

  Source Edit

    proc CMSG_SPACE(len: csize): csize {...}{.importc, header: "<sys/socket.h>", deprecated: "argument `len` should be of type `csize_t`".}

  Deprecated: argument `len` should be of type `csize_t`
  Source Edit

    proc CMSG_SPACE(len: csize_t): csize_t {...}{.importc, header: "<sys/socket.h>".}

  Source Edit

    proc CMSG_LEN(len: csize): csize {...}{.importc, header: "<sys/socket.h>", deprecated: "argument `len` should be of type `csize_t`".}

  Deprecated: argument `len` should be of type `csize_t`
  Source Edit

    proc CMSG_LEN(len: csize_t): csize_t {...}{.importc, header: "<sys/socket.h>".}

  Source Edit

    proc `==`(x, y: SocketHandle): bool {...}{.borrow.}

  Source Edit

    proc accept(a1: SocketHandle; a2: ptr SockAddr; a3: ptr SockLen): SocketHandle {...}{.
        importc, header: "<sys/socket.h>", sideEffect.}

  Source Edit

    proc accept4(a1: SocketHandle; a2: ptr SockAddr; a3: ptr SockLen; flags: cint): SocketHandle {...}{.
        importc, header: "<sys/socket.h>".}

  Source Edit

    proc bindSocket(a1: SocketHandle; a2: ptr SockAddr; a3: SockLen): cint {...}{.
        importc: "bind", header: "<sys/socket.h>".}

  is Posix's `bind`, because `bind` is a reserved word Source Edit

    proc connect(a1: SocketHandle; a2: ptr SockAddr; a3: SockLen): cint {...}{.importc,
        header: "<sys/socket.h>".}

  Source Edit

    proc getpeername(a1: SocketHandle; a2: ptr SockAddr; a3: ptr SockLen): cint {...}{.
        importc, header: "<sys/socket.h>".}

  Source Edit

    proc getsockname(a1: SocketHandle; a2: ptr SockAddr; a3: ptr SockLen): cint {...}{.
        importc, header: "<sys/socket.h>".}

  Source Edit

    proc getsockopt(a1: SocketHandle; a2, a3: cint; a4: pointer; a5: ptr SockLen): cint {...}{.
        importc, header: "<sys/socket.h>".}

  Source Edit

    proc listen(a1: SocketHandle; a2: cint): cint {...}{.importc,
        header: "<sys/socket.h>", sideEffect.}

  Source Edit

    proc recv(a1: SocketHandle; a2: pointer; a3: int; a4: cint): int {...}{.importc,
        header: "<sys/socket.h>", sideEffect.}

  Source Edit

    proc recvfrom(a1: SocketHandle; a2: pointer; a3: int; a4: cint;
                  a5: ptr SockAddr; a6: ptr SockLen): int {...}{.importc,
        header: "<sys/socket.h>", sideEffect.}

  Source Edit

    proc recvmsg(a1: SocketHandle; a2: ptr Tmsghdr; a3: cint): int {...}{.importc,
        header: "<sys/socket.h>", sideEffect.}

  Source Edit

    proc send(a1: SocketHandle; a2: pointer; a3: int; a4: cint): int {...}{.importc,
        header: "<sys/socket.h>", sideEffect.}

  Source Edit

    proc sendmsg(a1: SocketHandle; a2: ptr Tmsghdr; a3: cint): int {...}{.importc,
        header: "<sys/socket.h>", sideEffect.}

  Source Edit

    proc sendto(a1: SocketHandle; a2: pointer; a3: int; a4: cint; a5: ptr SockAddr;
                a6: SockLen): int {...}{.importc, header: "<sys/socket.h>", sideEffect.}

  Source Edit

    proc setsockopt(a1: SocketHandle; a2, a3: cint; a4: pointer; a5: SockLen): cint {...}{.
        importc, header: "<sys/socket.h>".}

  Source Edit

    proc shutdown(a1: SocketHandle; a2: cint): cint {...}{.importc,
        header: "<sys/socket.h>".}

  Source Edit

    proc socket(a1, a2, a3: cint): SocketHandle {...}{.importc, header: "<sys/socket.h>".}

  Source Edit

    proc sockatmark(a1: cint): cint {...}{.importc, header: "<sys/socket.h>".}

  Source Edit

    proc socketpair(a1, a2, a3: cint; a4: var array[0 .. 1, cint]): cint {...}{.importc,
        header: "<sys/socket.h>".}

  Source Edit

    proc if_nametoindex(a1: cstring): cint {...}{.importc, header: "<net/if.h>".}

  Source Edit

    proc if_indextoname(a1: cint; a2: cstring): cstring {...}{.importc,
        header: "<net/if.h>".}

  Source Edit

    proc if_nameindex(): ptr Tif_nameindex {...}{.importc, header: "<net/if.h>".}

  Source Edit

    proc if_freenameindex(a1: ptr Tif_nameindex) {...}{.importc, header: "<net/if.h>".}

  Source Edit

    proc IN6_IS_ADDR_UNSPECIFIED(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  Unspecified address. Source Edit

    proc IN6_IS_ADDR_LOOPBACK(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  Loopback address. Source Edit

    proc IN6_IS_ADDR_MULTICAST(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  Multicast address. Source Edit

    proc IN6_IS_ADDR_LINKLOCAL(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  Unicast link-local address. Source Edit

    proc IN6_IS_ADDR_SITELOCAL(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  Unicast site-local address. Source Edit

    proc IN6_IS_ADDR_V4MAPPED(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  IPv4 mapped address. Source Edit

    proc IN6_IS_ADDR_V4COMPAT(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  IPv4-compatible address. Source Edit

    proc IN6_IS_ADDR_MC_NODELOCAL(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  Multicast node-local address. Source Edit

    proc IN6_IS_ADDR_MC_LINKLOCAL(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  Multicast link-local address. Source Edit

    proc IN6_IS_ADDR_MC_SITELOCAL(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  Multicast site-local address. Source Edit

    proc IN6_IS_ADDR_MC_ORGLOCAL(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  Multicast organization-local address. Source Edit

    proc IN6_IS_ADDR_MC_GLOBAL(a1: ptr In6Addr): cint {...}{.importc,
        header: "<netinet/in.h>".}

  Multicast global address. Source Edit

    proc endhostent() {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc endnetent() {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc endprotoent() {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc endservent() {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc freeaddrinfo(a1: ptr AddrInfo) {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc gai_strerror(a1: cint): cstring {...}{.importc: "(char *)$1",
                                           header: "<netdb.h>".}

  Source Edit

    proc getaddrinfo(a1, a2: cstring; a3: ptr AddrInfo; a4: var ptr AddrInfo): cint {...}{.
        importc, header: "<netdb.h>".}

  Source Edit

    proc gethostbyaddr(a1: pointer; a2: SockLen; a3: cint): ptr Hostent {...}{.importc,
        header: "<netdb.h>".}

  Source Edit

    proc gethostbyname(a1: cstring): ptr Hostent {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc gethostent(): ptr Hostent {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc getnameinfo(a1: ptr SockAddr; a2: SockLen; a3: cstring; a4: SockLen;
                     a5: cstring; a6: SockLen; a7: cint): cint {...}{.importc,
        header: "<netdb.h>".}

  Source Edit

    proc getnetbyaddr(a1: int32; a2: cint): ptr Tnetent {...}{.importc,
        header: "<netdb.h>".}

  Source Edit

    proc getnetbyname(a1: cstring): ptr Tnetent {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc getnetent(): ptr Tnetent {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc getprotobyname(a1: cstring): ptr Protoent {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc getprotobynumber(a1: cint): ptr Protoent {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc getprotoent(): ptr Protoent {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc getservbyname(a1, a2: cstring): ptr Servent {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc getservbyport(a1: cint; a2: cstring): ptr Servent {...}{.importc,
        header: "<netdb.h>".}

  Source Edit

    proc getservent(): ptr Servent {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc sethostent(a1: cint) {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc setnetent(a1: cint) {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc setprotoent(a1: cint) {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc setservent(a1: cint) {...}{.importc, header: "<netdb.h>".}

  Source Edit

    proc poll(a1: ptr TPollfd; a2: Tnfds; a3: int): cint {...}{.importc,
        header: "<poll.h>", sideEffect.}

  Source Edit

    proc realpath(name, resolved: cstring): cstring {...}{.importc: "realpath",
        header: "<stdlib.h>".}

  Source Edit

    proc mkstemp(tmpl: cstring): cint {...}{.importc, header: "<stdlib.h>", sideEffect.}

  Creates a unique temporary file.

  Warning: The `tmpl` argument is written to by `mkstemp` and thus can't be a string literal. If in doubt make a copy of the cstring before passing it in.

  Source Edit

    proc mkstemps(tmpl: cstring; suffixlen: int): cint {...}{.importc,
        header: "<stdlib.h>", sideEffect.}

  Creates a unique temporary file.

  Warning: The `tmpl` argument is written to by `mkstemps` and thus can't be a string literal. If in doubt make a copy of the cstring before passing it in.

  Source Edit

    proc mkdtemp(tmpl: cstring): pointer {...}{.importc, header: "<stdlib.h>", sideEffect.}

  Source Edit

    proc mkostemp(tmpl: cstring; oflags: cint): cint {...}{.importc,
        header: "<stdlib.h>", sideEffect.}

  Source Edit

    proc mkostemps(tmpl: cstring; suffixlen: cint; oflags: cint): cint {...}{.importc,
        header: "<stdlib.h>", sideEffect.}

  Source Edit

    proc posix_memalign(memptr: pointer; alignment: csize_t; size: csize_t): cint {...}{.
        importc, header: "<stdlib.h>".}

  Source Edit

    proc utimes(path: cstring; times: ptr array[2, Timeval]): int {...}{.
        importc: "utimes", header: "<sys/time.h>", sideEffect.}

  Sets file access and modification times.

  Pass the filename and an array of times to set the access and modification times respectively. If you pass nil as the array both attributes will be set to the current time.

  Returns zero on success.

  For more information read http://www.unix.com/man-page/posix/3/utimes/.

  Source Edit

    proc setrlimit(resource: cint; rlp: var RLimit): cint {...}{.importc: "setrlimit",
        header: "<sys/resource.h>".}

  The setrlimit() system calls sets resource limits. Source Edit

    proc getrlimit(resource: cint; rlp: var RLimit): cint {...}{.importc: "getrlimit",
        header: "<sys/resource.h>".}

  The getrlimit() system call gets resource limits. Source Edit

# Templates

    template onSignal(signals: varargs[cint]; body: untyped)

  Setup code to be executed when Unix signals are received. The currently handled signal is injected as `sig` into the calling scope.

  Example:

      from posix import SIGINT, SIGTERM, onSignal
      onSignal(SIGINT, SIGTERM):
        echo "bye from signal ", sig

  Source Edit