[BACK]Return to unistd.h CVS log [TXT][DIR] Up to [local] / src / include

Annotation of src/include/unistd.h, Revision 1.90

1.90    ! guenther    1: /*     $OpenBSD: unistd.h,v 1.89 2014/07/08 21:35:39 tedu Exp $ */
1.6       deraadt     2: /*     $NetBSD: unistd.h,v 1.26.4.1 1996/05/28 02:31:51 mrg Exp $      */
1.1       deraadt     3:
                      4: /*-
                      5:  * Copyright (c) 1991 The Regents of the University of California.
                      6:  * All rights reserved.
                      7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
1.47      millert    16:  * 3. Neither the name of the University nor the names of its contributors
1.1       deraadt    17:  *    may be used to endorse or promote products derived from this software
                     18:  *    without specific prior written permission.
                     19:  *
                     20:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     21:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     22:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     23:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     24:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     25:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     26:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     27:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     28:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     29:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     30:  * SUCH DAMAGE.
                     31:  *
                     32:  *     @(#)unistd.h    5.13 (Berkeley) 6/17/91
                     33:  */
                     34:
                     35: #ifndef _UNISTD_H_
                     36: #define        _UNISTD_H_
                     37:
                     38: #include <sys/types.h>
                     39: #include <sys/unistd.h>
                     40:
                     41: #define        STDIN_FILENO    0       /* standard input file descriptor */
                     42: #define        STDOUT_FILENO   1       /* standard output file descriptor */
                     43: #define        STDERR_FILENO   2       /* standard error file descriptor */
                     44:
1.57      millert    45: #if __XPG_VISIBLE || __POSIX_VISIBLE >= 200112
                     46: #define F_ULOCK         0      /* unlock locked section */
                     47: #define F_LOCK          1      /* lock a section for exclusive use */
                     48: #define F_TLOCK         2      /* test and lock a section for exclusive use */
                     49: #define F_TEST          3      /* test a section for locks by other procs */
1.62      millert    50: #endif
                     51:
1.71      matthew    52: /*
                     53:  * POSIX options and option groups we unconditionally do or don't
                     54:  * implement.  Please keep this list in alphabetical order.
                     55:  *
                     56:  * Anything which is defined as zero below **must** have an
                     57:  * implementation for the corresponding sysconf() which is able to
                     58:  * determine conclusively whether or not the feature is supported.
                     59:  * Anything which is defined as other than -1 below **must** have
                     60:  * complete headers, types, and function declarations as specified by
                     61:  * the POSIX standard; however, if the relevant sysconf() function
                     62:  * returns -1, the functions may be stubbed out.
                     63:  */
                     64: #define _POSIX_ADVISORY_INFO                   (-1)
                     65: #define _POSIX_ASYNCHRONOUS_IO                 (-1)
                     66: #define _POSIX_BARRIERS                                200112L
                     67: #define _POSIX_CHOWN_RESTRICTED                        1
                     68: #define _POSIX_CLOCK_SELECTION                 (-1)
1.79      guenther   69: #define _POSIX_CPUTIME                         200809L
1.71      matthew    70: #define _POSIX_FSYNC                           200112L
                     71: #define _POSIX_IPV6                            0
                     72: #define _POSIX_JOB_CONTROL                     1
                     73: #define _POSIX_MAPPED_FILES                    200112L
                     74: #define _POSIX_MEMLOCK                         200112L
                     75: #define _POSIX_MEMLOCK_RANGE                   200112L
                     76: #define _POSIX_MEMORY_PROTECTION               200112L
                     77: #define _POSIX_MESSAGE_PASSING                 (-1)
                     78: #define _POSIX_MONOTONIC_CLOCK                 200112L
                     79: #define _POSIX_NO_TRUNC                                1
                     80: #define _POSIX_PRIORITIZED_IO                  (-1)
                     81: #define _POSIX_PRIORITY_SCHEDULING             (-1)
                     82: #define _POSIX_RAW_SOCKETS                     200112L
                     83: #define _POSIX_READER_WRITER_LOCKS             200112L
                     84: #define _POSIX_REALTIME_SIGNALS                        (-1)
                     85: #define _POSIX_REGEXP                          1
                     86: #define _POSIX_SAVED_IDS                       1
                     87: #define _POSIX_SEMAPHORES                      200112L
1.78      brad       88: #define _POSIX_SHARED_MEMORY_OBJECTS           200809L
1.71      matthew    89: #define _POSIX_SHELL                           1
                     90: #define _POSIX_SPAWN                           200112L
                     91: #define _POSIX_SPIN_LOCKS                      200112L
                     92: #define _POSIX_SPORADIC_SERVER                 (-1)
                     93: #define _POSIX_SYNCHRONIZED_IO                 (-1)
                     94: #define _POSIX_THREAD_ATTR_STACKADDR           200112L
                     95: #define _POSIX_THREAD_ATTR_STACKSIZE           200112L
1.79      guenther   96: #define _POSIX_THREAD_CPUTIME                  200809L
1.71      matthew    97: #define _POSIX_THREAD_PRIO_INHERIT             (-1)
                     98: #define _POSIX_THREAD_PRIO_PROTECT             (-1)
                     99: #define _POSIX_THREAD_PRIORITY_SCHEDULING      (-1)
                    100: #define _POSIX_THREAD_PROCESS_SHARED           (-1)
                    101: #define _POSIX_THREAD_ROBUST_PRIO_INHERIT      (-1)
                    102: #define _POSIX_THREAD_ROBUST_PRIO_PROTECT      (-1)
                    103: #define _POSIX_THREAD_SAFE_FUNCTIONS           200112L
                    104: #define _POSIX_THREAD_SPORADIC_SERVER          (-1)
                    105: #define _POSIX_THREADS                         200112L
                    106: #define _POSIX_TIMEOUTS                                200112L
                    107: #define _POSIX_TIMERS                          (-1)
                    108: #define _POSIX_TRACE                           (-1)
                    109: #define _POSIX_TRACE_EVENT_FILTER              (-1)
                    110: #define _POSIX_TRACE_INHERIT                   (-1)
                    111: #define _POSIX_TRACE_LOG                       (-1)
                    112: #define _POSIX_TYPED_MEMORY_OBJECTS            (-1)
                    113: #define _POSIX2_C_BIND                         200112L
                    114: #define _POSIX2_C_DEV                          (-1) /* need C99 utility */
                    115: #define _POSIX2_CHAR_TERM                      1
                    116: #define _POSIX2_FORT_DEV                       (-1) /* need fort77 utility */
1.89      tedu      117: #define _POSIX2_FORT_RUN                       (-1) /* need asa utility */
1.71      matthew   118: #define _POSIX2_LOCALEDEF                      (-1)
                    119: #define _POSIX2_PBS                            (-1)
                    120: #define _POSIX2_PBS_ACCOUNTING                 (-1)
                    121: #define _POSIX2_PBS_CHECKPOINT                 (-1)
                    122: #define _POSIX2_PBS_LOCATE                     (-1)
                    123: #define _POSIX2_PBS_MESSAGE                    (-1)
                    124: #define _POSIX2_PBS_TRACK                      (-1)
                    125: #define _POSIX2_SW_DEV                         200112L
                    126: #define _POSIX2_UPE                            200112L
                    127: #define _POSIX_V6_ILP32_OFF32                  (-1)
                    128: #define _POSIX_V6_ILP32_OFFBIG                 0
                    129: #define _POSIX_V6_LP64_OFF64                   0
                    130: #define _POSIX_V6_LPBIG_OFFBIG                 0
                    131: #define _POSIX_V7_ILP32_OFF32                  (-1)
                    132: #define _POSIX_V7_ILP32_OFFBIG                 0
                    133: #define _POSIX_V7_LP64_OFF64                   0
                    134: #define _POSIX_V7_LPBIG_OFFBIG                 0
                    135:
                    136: #define _XOPEN_CRYPT                           1
                    137: #define _XOPEN_ENH_I18N                                (-1) /* mandatory in XSI */
                    138: #define _XOPEN_LEGACY                          (-1)
                    139: #define _XOPEN_REALTIME                                (-1)
                    140: #define _XOPEN_REALTIME_THREADS                        (-1)
                    141: #define _XOPEN_SHM                             1
                    142: #define _XOPEN_STREAMS                         (-1)
                    143: #define _XOPEN_UUCP                            (-1)
                    144: #define _XOPEN_UNIX                            (-1)
                    145:
                    146: /* Define the POSIX.2 version we target for compliance. */
                    147: #define _POSIX2_VERSION                                199212L
1.72      matthew   148:
                    149: /* the sysconf(3) variable values are part of the ABI */
                    150:
                    151: /* configurable system variables */
                    152: #define        _SC_ARG_MAX              1
                    153: #define        _SC_CHILD_MAX            2
                    154: #define        _SC_CLK_TCK              3
                    155: #define        _SC_NGROUPS_MAX          4
                    156: #define        _SC_OPEN_MAX             5
                    157: #define        _SC_JOB_CONTROL          6
                    158: #define        _SC_SAVED_IDS            7
                    159: #define        _SC_VERSION              8
                    160: #define        _SC_BC_BASE_MAX          9
                    161: #define        _SC_BC_DIM_MAX          10
                    162: #define        _SC_BC_SCALE_MAX        11
                    163: #define        _SC_BC_STRING_MAX       12
                    164: #define        _SC_COLL_WEIGHTS_MAX    13
                    165: #define        _SC_EXPR_NEST_MAX       14
                    166: #define        _SC_LINE_MAX            15
                    167: #define        _SC_RE_DUP_MAX          16
                    168: #define        _SC_2_VERSION           17
                    169: #define        _SC_2_C_BIND            18
                    170: #define        _SC_2_C_DEV             19
                    171: #define        _SC_2_CHAR_TERM         20
                    172: #define        _SC_2_FORT_DEV          21
                    173: #define        _SC_2_FORT_RUN          22
                    174: #define        _SC_2_LOCALEDEF         23
                    175: #define        _SC_2_SW_DEV            24
                    176: #define        _SC_2_UPE               25
                    177: #define        _SC_STREAM_MAX          26
                    178: #define        _SC_TZNAME_MAX          27
                    179: #define        _SC_PAGESIZE            28
                    180: #define        _SC_PAGE_SIZE           _SC_PAGESIZE    /* 1170 compatibility */
                    181: #define        _SC_FSYNC               29
                    182: #define        _SC_XOPEN_SHM           30
                    183: #define        _SC_SEM_NSEMS_MAX       31
                    184: #define        _SC_SEM_VALUE_MAX       32
                    185: #define        _SC_HOST_NAME_MAX       33
                    186: #define        _SC_MONOTONIC_CLOCK     34
                    187: #define        _SC_2_PBS               35
                    188: #define        _SC_2_PBS_ACCOUNTING    36
                    189: #define        _SC_2_PBS_CHECKPOINT    37
                    190: #define        _SC_2_PBS_LOCATE        38
                    191: #define        _SC_2_PBS_MESSAGE       39
                    192: #define        _SC_2_PBS_TRACK         40
                    193: #define        _SC_ADVISORY_INFO       41
                    194: #define        _SC_AIO_LISTIO_MAX      42
                    195: #define        _SC_AIO_MAX             43
                    196: #define        _SC_AIO_PRIO_DELTA_MAX  44
                    197: #define        _SC_ASYNCHRONOUS_IO     45
                    198: #define        _SC_ATEXIT_MAX          46
                    199: #define        _SC_BARRIERS            47
                    200: #define        _SC_CLOCK_SELECTION     48
                    201: #define        _SC_CPUTIME             49
                    202: #define        _SC_DELAYTIMER_MAX      50
                    203: #define        _SC_IOV_MAX             51
                    204: #define        _SC_IPV6                52
                    205: #define        _SC_MAPPED_FILES        53
                    206: #define        _SC_MEMLOCK             54
                    207: #define        _SC_MEMLOCK_RANGE       55
                    208: #define        _SC_MEMORY_PROTECTION   56
                    209: #define        _SC_MESSAGE_PASSING     57
                    210: #define        _SC_MQ_OPEN_MAX         58
                    211: #define        _SC_MQ_PRIO_MAX         59
                    212: #define        _SC_PRIORITIZED_IO      60
                    213: #define        _SC_PRIORITY_SCHEDULING 61
                    214: #define        _SC_RAW_SOCKETS         62
                    215: #define        _SC_READER_WRITER_LOCKS 63
                    216: #define        _SC_REALTIME_SIGNALS    64
                    217: #define        _SC_REGEXP              65
                    218: #define        _SC_RTSIG_MAX           66
                    219: #define        _SC_SEMAPHORES          67
                    220: #define        _SC_SHARED_MEMORY_OBJECTS 68
                    221: #define        _SC_SHELL               69
                    222: #define        _SC_SIGQUEUE_MAX        70
                    223: #define        _SC_SPAWN               71
                    224: #define        _SC_SPIN_LOCKS          72
                    225: #define        _SC_SPORADIC_SERVER     73
                    226: #define        _SC_SS_REPL_MAX         74
                    227: #define        _SC_SYNCHRONIZED_IO     75
                    228: #define        _SC_SYMLOOP_MAX         76
                    229: #define        _SC_THREAD_ATTR_STACKADDR 77
                    230: #define        _SC_THREAD_ATTR_STACKSIZE 78
                    231: #define        _SC_THREAD_CPUTIME      79
                    232: #define        _SC_THREAD_DESTRUCTOR_ITERATIONS 80
                    233: #define        _SC_THREAD_KEYS_MAX     81
                    234: #define        _SC_THREAD_PRIO_INHERIT 82
                    235: #define        _SC_THREAD_PRIO_PROTECT 83
                    236: #define        _SC_THREAD_PRIORITY_SCHEDULING 84
                    237: #define        _SC_THREAD_PROCESS_SHARED 85
                    238: #define        _SC_THREAD_ROBUST_PRIO_INHERIT 86
                    239: #define        _SC_THREAD_ROBUST_PRIO_PROTECT 87
                    240: #define        _SC_THREAD_SPORADIC_SERVER 88
                    241: #define        _SC_THREAD_STACK_MIN    89
                    242: #define        _SC_THREAD_THREADS_MAX  90
                    243: #define        _SC_THREADS             91
                    244: #define        _SC_TIMEOUTS            92
                    245: #define        _SC_TIMER_MAX           93
                    246: #define        _SC_TIMERS              94
                    247: #define        _SC_TRACE               95
                    248: #define        _SC_TRACE_EVENT_FILTER  96
                    249: #define        _SC_TRACE_EVENT_NAME_MAX 97
                    250: #define        _SC_TRACE_INHERIT       98
                    251: #define        _SC_TRACE_LOG           99
                    252: #define        _SC_GETGR_R_SIZE_MAX    100
                    253: #define        _SC_GETPW_R_SIZE_MAX    101
                    254: #define        _SC_LOGIN_NAME_MAX      102
                    255: #define        _SC_THREAD_SAFE_FUNCTIONS 103
                    256: #define        _SC_TRACE_NAME_MAX      104
                    257: #define        _SC_TRACE_SYS_MAX       105
                    258: #define        _SC_TRACE_USER_EVENT_MAX 106
                    259: #define        _SC_TTY_NAME_MAX        107
                    260: #define        _SC_TYPED_MEMORY_OBJECTS 108
                    261: #define        _SC_V6_ILP32_OFF32      109
                    262: #define        _SC_V6_ILP32_OFFBIG     110
                    263: #define        _SC_V6_LP64_OFF64       111
                    264: #define        _SC_V6_LPBIG_OFFBIG     112
                    265: #define        _SC_V7_ILP32_OFF32      113
                    266: #define        _SC_V7_ILP32_OFFBIG     114
                    267: #define        _SC_V7_LP64_OFF64       115
                    268: #define        _SC_V7_LPBIG_OFFBIG     116
                    269: #define        _SC_XOPEN_CRYPT         117
                    270: #define        _SC_XOPEN_ENH_I18N      118
                    271: #define        _SC_XOPEN_LEGACY        119
                    272: #define        _SC_XOPEN_REALTIME      120
                    273: #define        _SC_XOPEN_REALTIME_THREADS 121
                    274: #define        _SC_XOPEN_STREAMS       122
                    275: #define        _SC_XOPEN_UNIX          123
                    276: #define        _SC_XOPEN_UUCP          124
                    277: #define        _SC_XOPEN_VERSION       125
                    278:
                    279: #define        _SC_PHYS_PAGES          500
                    280: #define        _SC_AVPHYS_PAGES        501
                    281: #define        _SC_NPROCESSORS_CONF    502
                    282: #define        _SC_NPROCESSORS_ONLN    503
                    283:
                    284: /* configurable system strings */
1.75      guenther  285: #define        _CS_PATH                                 1
                    286: #define        _CS_POSIX_V6_ILP32_OFF32_CFLAGS          2
                    287: #define        _CS_POSIX_V6_ILP32_OFF32_LDFLAGS         3
                    288: #define        _CS_POSIX_V6_ILP32_OFF32_LIBS            4
                    289: #define        _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS         5
                    290: #define        _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS        6
                    291: #define        _CS_POSIX_V6_ILP32_OFFBIG_LIBS           7
                    292: #define        _CS_POSIX_V6_LP64_OFF64_CFLAGS           8
                    293: #define        _CS_POSIX_V6_LP64_OFF64_LDFLAGS          9
                    294: #define        _CS_POSIX_V6_LP64_OFF64_LIBS            10
                    295: #define        _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS        11
                    296: #define        _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS       12
                    297: #define        _CS_POSIX_V6_LPBIG_OFFBIG_LIBS          13
                    298: #define        _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS      14
                    299: #define        _CS_V6_ENV                              15
                    300: #define        _CS_POSIX_V7_ILP32_OFF32_CFLAGS         16
                    301: #define        _CS_POSIX_V7_ILP32_OFF32_LDFLAGS        17
                    302: #define        _CS_POSIX_V7_ILP32_OFF32_LIBS           18
                    303: #define        _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS        19
                    304: #define        _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS       20
                    305: #define        _CS_POSIX_V7_ILP32_OFFBIG_LIBS          21
                    306: #define        _CS_POSIX_V7_LP64_OFF64_CFLAGS          22
                    307: #define        _CS_POSIX_V7_LP64_OFF64_LDFLAGS         23
                    308: #define        _CS_POSIX_V7_LP64_OFF64_LIBS            24
                    309: #define        _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS        25
                    310: #define        _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS       26
                    311: #define        _CS_POSIX_V7_LPBIG_OFFBIG_LIBS          27
                    312: #define        _CS_POSIX_V7_THREADS_CFLAGS             28
                    313: #define        _CS_POSIX_V7_THREADS_LDFLAGS            29
                    314: #define        _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS      30
                    315: #define        _CS_V7_ENV                              31
                    316:
1.57      millert   317:
1.1       deraadt   318: #ifndef NULL
1.26      espie     319: #ifdef         __GNUG__
1.27      espie     320: #define        NULL    __null
1.64      jsg       321: #elif defined(__cplusplus)
                    322: #define        NULL    0L
1.26      espie     323: #else
1.63      miod      324: #define        NULL    ((void *)0)
1.26      espie     325: #endif
1.84      matthew   326: #endif
                    327:
                    328: #ifndef        _INTPTR_T_DEFINED_
                    329: #define        _INTPTR_T_DEFINED_
                    330: typedef        __intptr_t              intptr_t;
1.1       deraadt   331: #endif
                    332:
                    333: __BEGIN_DECLS
1.36      millert   334: __dead void     _exit(int);
                    335: int     access(const char *, int);
                    336: unsigned int alarm(unsigned int);
                    337: int     chdir(const char *);
                    338: int     chown(const char *, uid_t, gid_t);
                    339: int     close(int);
                    340: int     dup(int);
                    341: int     dup2(int, int);
1.40      espie     342: int     execl(const char *, const char *, ...)
1.85      guenther  343:            __attribute__((__sentinel__));
1.59      espie     344: int     execle(const char *, const char *, ...);
1.40      espie     345: int     execlp(const char *, const char *, ...)
1.85      guenther  346:            __attribute__((__sentinel__));
1.68      matthew   347: int     execv(const char *, char *const *);
                    348: int     execve(const char *, char *const *, char *const *);
                    349: int     execvp(const char *, char *const *);
                    350: #if __BSD_VISIBLE
                    351: int     execvpe(const char *, char *const *, char *const *);
                    352: #endif
1.36      millert   353: pid_t   fork(void);
                    354: long    fpathconf(int, int);
1.50      avsm      355: char   *getcwd(char *, size_t)
1.66      fgsch     356:                __attribute__((__bounded__(__string__,1,2)));
1.36      millert   357: gid_t   getegid(void);
                    358: uid_t   geteuid(void);
                    359: gid_t   getgid(void);
                    360: int     getgroups(int, gid_t *);
                    361: char   *getlogin(void);
                    362: pid_t   getpgrp(void);
                    363: pid_t   getpid(void);
                    364: pid_t   getppid(void);
                    365: uid_t   getuid(void);
                    366: int     isatty(int);
                    367: int     link(const char *, const char *);
                    368: off_t   lseek(int, off_t, int);
                    369: long    pathconf(const char *, int);
                    370: int     pause(void);
                    371: int     pipe(int *);
1.50      avsm      372: ssize_t         read(int, void *, size_t)
                    373:                __attribute__((__bounded__(__buffer__,2,3)));
1.36      millert   374: int     rmdir(const char *);
                    375: int     setgid(gid_t);
                    376: int     setuid(uid_t);
                    377: unsigned int sleep(unsigned int);
                    378: long    sysconf(int);
                    379: pid_t   tcgetpgrp(int);
                    380: int     tcsetpgrp(int, pid_t);
                    381: char   *ttyname(int);
                    382: int     unlink(const char *);
1.50      avsm      383: ssize_t         write(int, const void *, size_t)
                    384:                __attribute__((__bounded__(__buffer__,2,3)));
1.1       deraadt   385:
1.57      millert   386: #if __POSIX_VISIBLE || __XPG_VISIBLE >= 300
                    387: pid_t   setsid(void);
                    388: int     setpgid(pid_t, pid_t);
                    389: #endif
1.1       deraadt   390:
1.57      millert   391: #if __POSIX_VISIBLE >= 199209 || __XPG_VISIBLE
                    392: size_t  confstr(int, char *, size_t)
                    393:                __attribute__((__bounded__(__string__,2,3)));
                    394: #ifndef _GETOPT_DEFINED_
                    395: #define _GETOPT_DEFINED_
                    396: int     getopt(int, char * const *, const char *);
                    397: extern  char *optarg;                  /* getopt(3) external variables */
                    398: extern  int opterr, optind, optopt, optreset;
                    399: #endif /* _GETOPT_DEFINED_ */
                    400: #endif
                    401:
                    402: #if __POSIX_VISIBLE >= 199506 || __XPG_VISIBLE
                    403: int     fsync(int);
                    404: int     ftruncate(int, off_t);
                    405: int     getlogin_r(char *, size_t)
1.66      fgsch     406:                __attribute__((__bounded__(__string__,1,2)));
1.77      matthew   407: #endif
                    408: #if __POSIX_VISIBLE >= 199506
                    409: int     fdatasync(int);
1.57      millert   410: #endif
1.1       deraadt   411:
1.57      millert   412: #if __XPG_VISIBLE || __BSD_VISIBLE
1.86      tedu      413: #if __BSD_VISIBLE
                    414: int    crypt_checkpass(const char *, const char *);
                    415: #endif
1.57      millert   416: char   *crypt(const char *, const char *);
                    417: int     encrypt(char *, int);
                    418: int     fchdir(int);
                    419: int     fchown(int, uid_t, gid_t);
                    420: long    gethostid(void);
                    421: char   *getwd(char *)
                    422:                __attribute__ ((__bounded__(__minbytes__,1,1024)));
                    423: int     lchown(const char *, uid_t, gid_t);
                    424: int     mkstemp(char *);
                    425: char   *mktemp(char *);
                    426: int     nice(int);
                    427: int     readlink(const char *, char *, size_t)
                    428:                __attribute__ ((__bounded__(__string__,2,3)));
                    429: int     setkey(const char *);
                    430: int     setpgrp(pid_t pid, pid_t pgrp);        /* obsoleted by setpgid() */
                    431: int     setregid(gid_t, gid_t);
                    432: int     setreuid(uid_t, uid_t);
                    433: void    swab(const void *, void *, size_t);
                    434: void    sync(void);
                    435: int     truncate(const char *, off_t);
1.80      guenther  436: useconds_t      ualarm(useconds_t, useconds_t);
1.57      millert   437: int     usleep(useconds_t);
                    438: pid_t   vfork(void);
                    439: #endif
                    440:
1.76      guenther  441: #if __POSIX_VISIBLE >= 200809 || __XPG_VISIBLE >= 420
1.57      millert   442: pid_t   getpgid(pid_t);
                    443: pid_t   getsid(pid_t);
                    444: #endif
                    445:
                    446: #if __XPG_VISIBLE >= 500
1.83      martynas  447: ssize_t  pread(int, void *, size_t, off_t)
                    448:                __attribute__((__bounded__(__buffer__,2,3)));
                    449: ssize_t  pwrite(int, const void *, size_t, off_t)
                    450:                __attribute__((__bounded__(__buffer__,2,3)));
1.57      millert   451: int     ttyname_r(int, char *, size_t)
                    452:            __attribute__((__bounded__(__string__,2,3)));
1.31      deraadt   453: #endif
                    454:
1.57      millert   455: #if __BSD_VISIBLE ||  __XPG_VISIBLE <= 500
                    456: /* Interfaces withdrawn by X/Open Issue 5 Version 0 */
1.60      kurt      457: int     brk(void *);
1.57      millert   458: int     chroot(const char *);
                    459: int     getdtablesize(void);
                    460: int     getpagesize(void);
                    461: char   *getpass(const char *);
                    462: void   *sbrk(int);
                    463: #endif
                    464:
                    465: #if __POSIX_VISIBLE >= 200112 || __XPG_VISIBLE >= 420
                    466: int     lockf(int, int, off_t);
                    467: #endif
                    468:
                    469: #if __POSIX_VISIBLE >= 200112 || __XPG_VISIBLE >= 420 || __BSD_VISIBLE
                    470: int     symlink(const char *, const char *);
                    471: int     gethostname(char *, size_t)
                    472:                __attribute__ ((__bounded__(__string__,1,2)));
                    473: int     setegid(gid_t);
                    474: int     seteuid(uid_t);
1.65      matthew   475: #endif
                    476:
                    477: #if __POSIX_VISIBLE >= 200809
                    478: int    faccessat(int, const char *, int, int);
                    479: int    fchownat(int, const char *, uid_t, gid_t, int);
                    480: int    linkat(int, const char *, int, const char *, int);
1.83      martynas  481: ssize_t        readlinkat(int, const char *, char *, size_t)
                    482:                __attribute__ ((__bounded__(__string__,3,4)));
1.65      matthew   483: int    symlinkat(const char *, int, const char *);
                    484: int    unlinkat(int, const char *, int);
1.90    ! guenther  485: #endif
        !           486:
        !           487: #if __BSD_VISIBLE
        !           488: int    dup3(int, int, int);
        !           489: int    pipe2(int [2], int);
1.57      millert   490: #endif
                    491:
                    492: #if __BSD_VISIBLE
1.36      millert   493: int     acct(const char *);
1.52      millert   494: int     closefrom(int);
1.51      deraadt   495: int     des_cipher(const char *, char *, int32_t, int);
1.58      espie     496: int     des_setkey(const char *);
1.36      millert   497: void    endusershell(void);
                    498: int     exect(const char *, char * const *, char * const *);
                    499: char   *fflagstostr(u_int32_t);
1.50      avsm      500: int     getdomainname(char *, size_t)
                    501:                __attribute__ ((__bounded__(__string__,1,2)));
1.69      deraadt   502: int     getdtablecount(void);
1.36      millert   503: int     getgrouplist(const char *, gid_t, gid_t *, int *);
                    504: mode_t  getmode(const void *, mode_t);
1.44      millert   505: int     getresgid(gid_t *, gid_t *, gid_t *);
                    506: int     getresuid(uid_t *, uid_t *, uid_t *);
1.36      millert   507: char   *getusershell(void);
                    508: int     initgroups(const char *, gid_t);
                    509: int     iruserok(u_int32_t, int, const char *, const char *);
                    510: int     iruserok_sa(const void *, int, int, const char *, const char *);
1.57      millert   511: int     issetugid(void);
                    512: char   *mkdtemp(char *);
                    513: int     mkstemps(char *, int);
1.36      millert   514: int     nfssvc(int, void *);
1.50      avsm      515: int     profil(char *, size_t, unsigned long, unsigned int)
                    516:                __attribute__ ((__bounded__(__string__,1,2)));
1.57      millert   517: int     quotactl(const char *, int, int, char *);
1.37      millert   518: int     rcmd(char **, int, const char *,
                    519:            const char *, const char *, int *);
                    520: int     rcmd_af(char **, int, const char *,
                    521:            const char *, const char *, int *, int);
                    522: int     rcmdsh(char **, int, const char *,
                    523:            const char *, const char *, char *);
1.36      millert   524: int     reboot(int);
                    525: int     revoke(const char *);
                    526: int     rresvport(int *);
                    527: int     rresvport_af(int *, int);
                    528: int     ruserok(const char *, int, const char *, const char *);
1.57      millert   529: #ifndef _SELECT_DEFINED_
1.67      nigel     530: #define _SELECT_DEFINED_
1.57      millert   531: struct timeval;
1.36      millert   532: int     select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
1.19      deraadt   533: #endif
1.36      millert   534: int     setdomainname(const char *, size_t);
                    535: int     setgroups(int, const gid_t *);
                    536: int     sethostid(long);
                    537: int     sethostname(const char *, size_t);
                    538: int     setlogin(const char *);
                    539: void   *setmode(const char *);
1.44      millert   540: int     setresgid(gid_t, gid_t, gid_t);
                    541: int     setresuid(uid_t, uid_t, uid_t);
1.36      millert   542: void    setusershell(void);
                    543: int     strtofflags(char **, u_int32_t *, u_int32_t *);
                    544: int     swapctl(int cmd, const void *arg, int misc);
                    545: int     syscall(int, ...);
1.88      deraadt   546: int     getentropy(void *, size_t);
1.73      guenther  547: pid_t   __tfork_thread(const struct __tfork *, size_t, void (*)(void *),
                    548:            void *);
1.57      millert   549: #endif /* __BSD_VISIBLE */
1.1       deraadt   550: __END_DECLS
                    551:
                    552: #endif /* !_UNISTD_H_ */