unistd.h revision 108381
125723Stegge/*- 225723Stegge * Copyright (c) 1991, 1993, 1994 3139823Simp * The Regents of the University of California. All rights reserved. 425723Stegge * 525723Stegge * Redistribution and use in source and binary forms, with or without 625723Stegge * modification, are permitted provided that the following conditions 725723Stegge * are met: 825723Stegge * 1. Redistributions of source code must retain the above copyright 925723Stegge * notice, this list of conditions and the following disclaimer. 1025723Stegge * 2. Redistributions in binary form must reproduce the above copyright 1125723Stegge * notice, this list of conditions and the following disclaimer in the 1225723Stegge * documentation and/or other materials provided with the distribution. 1325723Stegge * 3. All advertising materials mentioning features or use of this software 1425723Stegge * must display the following acknowledgement: 1525723Stegge * This product includes software developed by the University of 1625723Stegge * California, Berkeley and its contributors. 1725723Stegge * 4. Neither the name of the University nor the names of its contributors 1825723Stegge * may be used to endorse or promote products derived from this software 1925723Stegge * without specific prior written permission. 2025723Stegge * 2125723Stegge * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2225723Stegge * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2325723Stegge * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2425723Stegge * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2525723Stegge * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2625723Stegge * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2725723Stegge * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2825723Stegge * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2925723Stegge * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3025723Stegge * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3125723Stegge * SUCH DAMAGE. 3225723Stegge * 3325723Stegge * @(#)unistd.h 8.12 (Berkeley) 4/27/95 3425723Stegge * $FreeBSD: head/include/unistd.h 108381 2002-12-29 01:07:55Z mike $ 3525723Stegge */ 3625723Stegge 3725723Stegge#ifndef _UNISTD_H_ 3825723Stegge#define _UNISTD_H_ 3925723Stegge 4025723Stegge#include <sys/cdefs.h> 4125723Stegge#include <sys/types.h> /* XXX adds too much pollution. */ 4225723Stegge#include <sys/unistd.h> 4325723Stegge#include <sys/_types.h> 4425723Stegge 4583651Speter#ifndef _GID_T_DECLARED 4683651Spetertypedef __gid_t gid_t; 4783651Speter#define _GID_T_DECLARED 4825723Stegge#endif 4925723Stegge 5030354Sphk#ifndef _OFF_T_DECLARED 5125723Steggetypedef __off_t off_t; 5288743Srwatson#define _OFF_T_DECLARED 5325723Stegge#endif 5425723Stegge 5534924Sbde#ifndef _PID_T_DECLARED 5625723Steggetypedef __pid_t pid_t; 5725723Stegge#define _PID_T_DECLARED 5825723Stegge#endif 5925723Stegge 60122698Salfred#ifndef _SIZE_T_DECLARED 61122698Salfredtypedef __size_t size_t; 6225723Stegge#define _SIZE_T_DECLARED 6383651Speter#endif 6425723Stegge 6525723Stegge#ifndef _SSIZE_T_DECLARED 6625723Steggetypedef __ssize_t ssize_t; 6725723Stegge#define _SSIZE_T_DECLARED 6825723Stegge#endif 6925723Stegge 7025723Stegge#ifndef _UID_T_DECLARED 7125723Steggetypedef __uid_t uid_t; 7225723Stegge#define _UID_T_DECLARED 7325723Stegge#endif 7425723Stegge 7525723Stegge#ifndef _USECONDS_T_DECLARED 7625723Steggetypedef __useconds_t useconds_t; 7725723Stegge#define _USECONDS_T_DECLARED 7825723Stegge#endif 7925723Stegge 8025723Stegge#define STDIN_FILENO 0 /* standard input file descriptor */ 8125723Stegge#define STDOUT_FILENO 1 /* standard output file descriptor */ 8225723Stegge#define STDERR_FILENO 2 /* standard error file descriptor */ 8325723Stegge 8425723Stegge#ifndef NULL 8525723Stegge#define NULL 0 /* null pointer constant */ 8625723Stegge#endif 8725723Stegge 8825723Stegge#if __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 89122719Salfred#define F_ULOCK 0 /* unlock locked section */ 9025723Stegge#define F_LOCK 1 /* lock a section for exclusive use */ 9125723Stegge#define F_TLOCK 2 /* test and lock a section for exclusive use */ 9225723Stegge#define F_TEST 3 /* test a section for locks by other procs */ 9325723Stegge#endif 9425723Stegge 9525723Stegge/* 9625723Stegge * POSIX options and option groups we unconditionally do or don't 9725723Stegge * implement. This list includes those options which are exclusively 9825723Stegge * implemented (or not) in user mode. Please keep this list in 9925723Stegge * alphabetical order. 10025723Stegge * 101122719Salfred * Anything which is defined as zero below **must** have an 10225723Stegge * implementation for the corresponding sysconf() which is able to 10325723Stegge * determine conclusively whether or not the feature is supported. 10425723Stegge * Anything which is defined as other than -1 below **must** have 10525723Stegge * complete headers, types, and function declarations as specified by 10625723Stegge * the POSIX standard; however, if the relevant sysconf() function 10725723Stegge * returns -1, the functions may be stubbed out. 10825723Stegge */ 10925723Stegge#define _POSIX_BARRIERS -1 11025723Stegge#define _POSIX_READER_WRITER_LOCKS 200112L 11125723Stegge#define _POSIX_REGEXP 1 11225723Stegge#define _POSIX_SHELL 1 11325723Stegge#define _POSIX_SPAWN -1 11425723Stegge#define _POSIX_SPIN_LOCKS -1 11525723Stegge#define _POSIX_THREAD_ATTR_STACKADDR 200112L 11625723Stegge#define _POSIX_THREAD_ATTR_STACKSIZE 200112L 11725723Stegge#define _POSIX_THREAD_CPUTIME -1 11825723Stegge#define _POSIX_THREAD_PRIO_INHERIT 200112L 11925723Stegge#define _POSIX_THREAD_PRIO_PROTECT 200112L 12025723Stegge#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L 12125723Stegge#define _POSIX_THREAD_PROCESS_SHARED -1 12225723Stegge#define _POSIX_THREAD_SAFE_FUNCTIONS -1 12325723Stegge#define _POSIX_THREAD_SPORADIC_SERVER -1 12425723Stegge#define _POSIX_THREADS 200112L 12525723Stegge#define _POSIX_TRACE -1 12625723Stegge#define _POSIX_TRACE_EVENT_FILTER -1 12725723Stegge#define _POSIX_TRACE_INHERIT -1 12825723Stegge#define _POSIX_TRACE_LOG -1 12925723Stegge#define _POSIX2_C_BIND 200112L /* mandatory */ 13025723Stegge#define _POSIX2_C_DEV -1 /* need c99 utility */ 13125723Stegge#define _POSIX2_CHAR_TERM 1 13283651Speter#define _POSIX2_FORT_DEV -1 /* need fort77 utility */ 13383651Speter#define _POSIX2_FORT_RUN 200112L 13425723Stegge#define _POSIX2_LOCALEDEF -1 13525723Stegge#define _POSIX2_PBS -1 13625723Stegge#define _POSIX2_PBS_ACCOUNTING -1 13725723Stegge#define _POSIX2_PBS_CHECKPOINT -1 13825723Stegge#define _POSIX2_PBS_LOCATE -1 13925723Stegge#define _POSIX2_PBS_MESSAGE -1 14025723Stegge#define _POSIX2_PBS_TRACK -1 14125723Stegge#define _POSIX2_SW_DEV -1 /* XXX ??? */ 14225723Stegge#define _POSIX2_UPE 200112L 14325723Stegge#define _V6_ILP32_OFF32 -1 14425723Stegge#define _V6_ILP32_OFFBIG 0 14525723Stegge#define _V6_LP64_OFF64 0 14625723Stegge#define _V6_LPBIG_OFFBIG -1 14725723Stegge 14825723Stegge#if __XSI_VISIBLE 14925723Stegge#define _XOPEN_CRYPT -1 /* XXX ??? */ 15025723Stegge#define _XOPEN_ENH_I18N -1 /* mandatory in XSI */ 15125723Stegge#define _XOPEN_LEGACY -1 15225723Stegge#define _XOPEN_REALTIME -1 15325723Stegge#define _XOPEN_REALTIME_THREADS -1 154111119Simp#define _XOPEN_UNIX -1 15525723Stegge#endif 15625723Stegge 15725723Stegge/* Define the POSIX.2 version we target for compliance. */ 15825723Stegge#define _POSIX2_VERSION 199212L 15925723Stegge 16025723Stegge/* 16125723Stegge * POSIX-style system configuration variable accessors (for the 16225723Stegge * sysconf function). The kernel does not directly implement the 16325723Stegge * sysconf() interface; rather, a C library stub translates references 16425723Stegge * to sysconf() into calls to sysctl() using a giant switch statement. 16525723Stegge * Those that are marked `user' are implemented entirely in the C 16625723Stegge * library and never query the kernel. pathconf() is implemented 16725723Stegge * directly by the kernel so those are not defined here. 16883366Sjulian */ 16983651Speter#define _SC_ARG_MAX 1 17025723Stegge#define _SC_CHILD_MAX 2 17125723Stegge#define _SC_CLK_TCK 3 17225723Stegge#define _SC_NGROUPS_MAX 4 17325723Stegge#define _SC_OPEN_MAX 5 17425723Stegge#define _SC_JOB_CONTROL 6 17525723Stegge#define _SC_SAVED_IDS 7 17625723Stegge#define _SC_VERSION 8 17725723Stegge#define _SC_BC_BASE_MAX 9 /* user */ 17825723Stegge#define _SC_BC_DIM_MAX 10 /* user */ 17925723Stegge#define _SC_BC_SCALE_MAX 11 /* user */ 18025723Stegge#define _SC_BC_STRING_MAX 12 /* user */ 18125723Stegge#define _SC_COLL_WEIGHTS_MAX 13 /* user */ 18225723Stegge#define _SC_EXPR_NEST_MAX 14 /* user */ 18325723Stegge#define _SC_LINE_MAX 15 /* user */ 18425723Stegge#define _SC_RE_DUP_MAX 16 /* user */ 18525723Stegge#define _SC_2_VERSION 17 /* user */ 18625723Stegge#define _SC_2_C_BIND 18 /* user */ 18725723Stegge#define _SC_2_C_DEV 19 /* user */ 18825723Stegge#define _SC_2_CHAR_TERM 20 /* user */ 18925723Stegge#define _SC_2_FORT_DEV 21 /* user */ 19083651Speter#define _SC_2_FORT_RUN 22 /* user */ 19183651Speter#define _SC_2_LOCALEDEF 23 /* user */ 19225723Stegge#define _SC_2_SW_DEV 24 /* user */ 19325723Stegge#define _SC_2_UPE 25 /* user */ 19428270Swollman#define _SC_STREAM_MAX 26 /* user */ 19528270Swollman#define _SC_TZNAME_MAX 27 /* user */ 19628270Swollman 197122719Salfred#if __POSIX_VISIBLE >= 199309 198122719Salfred#define _SC_ASYNCHRONOUS_IO 28 19938482Swollman#define _SC_MAPPED_FILES 29 20038482Swollman#define _SC_MEMLOCK 30 20125723Stegge#define _SC_MEMLOCK_RANGE 31 20225723Stegge#define _SC_MEMORY_PROTECTION 32 20325723Stegge#define _SC_MESSAGE_PASSING 33 20425723Stegge#define _SC_PRIORITIZED_IO 34 20567529Stegge#define _SC_PRIORITY_SCHEDULING 35 20625723Stegge#define _SC_REALTIME_SIGNALS 36 20725723Stegge#define _SC_SEMAPHORES 37 20825723Stegge#define _SC_FSYNC 38 20925723Stegge#define _SC_SHARED_MEMORY_OBJECTS 39 21025723Stegge#define _SC_SYNCHRONIZED_IO 40 21125723Stegge#define _SC_TIMERS 41 21225723Stegge#define _SC_AIO_LISTIO_MAX 42 21325723Stegge#define _SC_AIO_MAX 43 21425723Stegge#define _SC_AIO_PRIO_DELTA_MAX 44 21525723Stegge#define _SC_DELAYTIMER_MAX 45 21625723Stegge#define _SC_MQ_OPEN_MAX 46 21725723Stegge#define _SC_PAGESIZE 47 218130554Srwatson#define _SC_RTSIG_MAX 48 219122261Ssam#define _SC_SEM_NSEMS_MAX 49 22025723Stegge#define _SC_SEM_VALUE_MAX 50 22125723Stegge#define _SC_SIGQUEUE_MAX 51 22225723Stegge#define _SC_TIMER_MAX 52 22391406Sjhb#endif 22425723Stegge 22525723Stegge#if __POSIX_VISIBLE >= 200112 22638482Swollman#define _SC_2_PBS 59 /* user */ 22738482Swollman#define _SC_2_PBS_ACCOUNTING 60 /* user */ 22838482Swollman#define _SC_2_PBS_CHECKPOINT 61 /* user */ 229120755Sjeff#define _SC_2_PBS_LOCATE 62 /* user */ 23038482Swollman#define _SC_2_PBS_MESSAGE 63 /* user */ 23138482Swollman#define _SC_2_PBS_TRACK 64 /* user */ 23238482Swollman#define _SC_ADVISORY_INFO 65 23338482Swollman#define _SC_BARRIERS 66 /* user */ 23438482Swollman#define _SC_CLOCK_SELECTION 67 23543309Sdillon#define _SC_CPUTIME 68 23625723Stegge#define _SC_FILE_LOCKING 69 23725723Stegge#define _SC_GETGR_R_SIZE_MAX 70 /* user */ 23825723Stegge#define _SC_GETPW_R_SIZE_MAX 71 /* user */ 23925723Stegge#define _SC_HOST_NAME_MAX 72 24025723Stegge#define _SC_LOGIN_NAME_MAX 73 24125723Stegge#define _SC_MONOTONIC_CLOCK 74 24238482Swollman#define _SC_MQ_PRIO_MAX 75 24338482Swollman#define _SC_READER_WRITER_LOCKS 76 /* user */ 24438482Swollman#define _SC_REGEXP 77 /* user */ 24538482Swollman#define _SC_SHELL 78 /* user */ 24643309Sdillon#define _SC_SPAWN 79 /* user */ 24725723Stegge#define _SC_SPIN_LOCKS 80 /* user */ 24825723Stegge#define _SC_SPORADIC_SERVER 81 24925723Stegge#define _SC_THREAD_ATTR_STACKADDR 82 /* user */ 25025723Stegge#define _SC_THREAD_ATTR_STACKSIZE 83 /* user */ 25125723Stegge#define _SC_THREAD_CPUTIME 84 /* user */ 25225723Stegge#define _SC_THREAD_DESTRUCTOR_ITERATIONS 85 /* user */ 25325723Stegge#define _SC_THREAD_KEYS_MAX 86 /* user */ 25425723Stegge#define _SC_THREAD_PRIO_INHERIT 87 /* user */ 25528270Swollman#define _SC_THREAD_PRIO_PROTECT 88 /* user */ 25628270Swollman#define _SC_THREAD_PRIORITY_SCHEDULING 89 /* user */ 25728270Swollman#define _SC_THREAD_PROCESS_SHARED 90 /* user */ 25825723Stegge#define _SC_THREAD_SAFE_FUNCTIONS 91 /* user */ 25925723Stegge#define _SC_THREAD_SPORADIC_SERVER 92 /* user */ 26025723Stegge#define _SC_THREAD_STACK_MIN 93 /* user */ 26125723Stegge#define _SC_THREAD_THREADS_MAX 94 /* user */ 26225723Stegge#define _SC_TIMEOUTS 95 /* user */ 26325723Stegge#define _SC_THREADS 96 /* user */ 26483366Sjulian#define _SC_TRACE 97 /* user */ 26525723Stegge#define _SC_TRACE_EVENT_FILTER 98 /* user */ 26625723Stegge#define _SC_TRACE_INHERIT 99 /* user */ 26725723Stegge#define _SC_TRACE_LOG 100 /* user */ 26825723Stegge#define _SC_TTY_NAME_MAX 101 /* user */ 26925723Stegge#define _SC_TYPED_MEMORY_OBJECTS 102 27025723Stegge#define _SC_V6_ILP32_OFF32 103 /* user */ 27125723Stegge#define _SC_V6_ILP32_OFFBIG 104 /* user */ 27225723Stegge#define _SC_V6_LP64_OFF64 105 /* user */ 27325723Stegge#define _SC_V6_LPBIG_OFFBIG 106 /* user */ 27425723Stegge#define _SC_IPV6 118 27525723Stegge#define _SC_RAW_SOCKETS 119 27625723Stegge#define _SC_SYMLOOP_MAX 120 27725723Stegge#endif 27825723Stegge 279111119Simp#if __XSI_VISIBLE 28025723Stegge#define _SC_ATEXIT_MAX 107 /* user */ 281122719Salfred#define _SC_IOV_MAX 56 28225723Stegge#define _SC_PAGE_SIZE _SC_PAGESIZE 28325723Stegge#define _SC_XOPEN_CRYPT 108 /* user */ 28425723Stegge#define _SC_XOPEN_ENH_I18N 109 /* user */ 28525723Stegge#define _SC_XOPEN_LEGACY 110 /* user */ 28625723Stegge#define _SC_XOPEN_REALTIME 111 28725723Stegge#define _SC_XOPEN_REALTIME_THREADS 112 28825723Stegge#define _SC_XOPEN_SHM 113 28925723Stegge#define _SC_XOPEN_STREAMS 114 29025723Stegge#define _SC_XOPEN_UNIX 115 29125723Stegge#define _SC_XOPEN_VERSION 116 29225723Stegge#define _SC_XOPEN_XCU_VERSION 117 /* user */ 29325723Stegge#endif 29425723Stegge 29525723Stegge#if __BSD_VISIBLE 29625723Stegge#define _SC_NPROCESSORS_CONF 57 29725723Stegge#define _SC_NPROCESSORS_ONLN 58 29825723Stegge#endif 29925723Stegge 30025723Stegge/* Keys for the confstr(3) function. */ 30125723Stegge#if __POSIX_VISIBLE >= 199209 30225723Stegge#define _CS_PATH 1 /* default value of PATH */ 30325723Stegge#endif 30425723Stegge 30525723Stegge#if __POSIX_VISIBLE >= 200112 30625723Stegge#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS 2 30725723Stegge#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS 3 30825723Stegge#define _CS_POSIX_V6_ILP32_OFF32_LIBS 4 30925723Stegge#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS 5 31025723Stegge#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS 6 31125723Stegge#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS 7 31225723Stegge#define _CS_POSIX_V6_LP64_OFF64_CFLAGS 8 31325723Stegge#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS 9 31425723Stegge#define _CS_POSIX_V6_LP64_OFF64_LIBS 10 31525723Stegge#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS 11 31625723Stegge#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS 12 31725723Stegge#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS 13 31825723Stegge#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS 14 319111119Simp#endif 32025723Stegge 32125723Stegge__BEGIN_DECLS 32225723Stegge/* 1003.1-1990 */ 32325723Steggevoid _exit(int) __dead2; 32428270Swollmanint access(const char *, int); 32583366Sjulianunsigned int alarm(unsigned int); 32625723Steggeint chdir(const char *); 32725723Steggeint chown(const char *, uid_t, gid_t); 32825723Steggeint close(int); 32925723Steggeint dup(int); 33025723Steggeint dup2(int, int); 33125723Steggeint eaccess(const char *, int); 33225723Steggeint execl(const char *, const char *, ...); 33325723Steggeint execle(const char *, const char *, ...); 33425723Steggeint execlp(const char *, const char *, ...); 33567529Steggeint execv(const char *, char * const *); 33667529Steggeint execve(const char *, char * const *, char * const *); 33767529Steggeint execvp(const char *, char * const *); 33867529Steggepid_t fork(void); 33967529Steggelong fpathconf(int, int); 34067529Steggechar *getcwd(char *, size_t); 34167529Steggegid_t getegid(void); 34267529Steggeuid_t geteuid(void); 34325723Steggegid_t getgid(void); 34425723Steggeint getgroups(int, gid_t []); 34525723Steggechar *getlogin(void); 34625723Steggepid_t getpgrp(void); 34725723Steggepid_t getpid(void); 34825723Steggepid_t getppid(void); 34925723Steggeuid_t getuid(void); 35025723Steggeint isatty(int); 35128270Swollmanint link(const char *, const char *); 35225723Stegge#ifndef _LSEEK_DECLARED 35325723Stegge#define _LSEEK_DECLARED 35425723Steggeoff_t lseek(int, off_t, int); 35525723Stegge#endif 35625723Steggelong pathconf(const char *, int); 35725723Steggeint pause(void); 35883651Speterint pipe(int *); 35925723Steggessize_t read(int, void *, size_t); 36025723Steggeint rmdir(const char *); 36125723Steggeint setgid(gid_t); 36225723Steggeint setpgid(pid_t, pid_t); 36325723Steggevoid setproctitle(const char *_fmt, ...) __printf0like(1, 2); 36425723Steggepid_t setsid(void); 36525723Steggeint setuid(uid_t); 36625723Steggeunsigned int sleep(unsigned int); 36725723Steggelong sysconf(int); 36825723Steggepid_t tcgetpgrp(int); 36925723Steggeint tcsetpgrp(int, pid_t); 37025723Steggechar *ttyname(int); 37125723Steggeint unlink(const char *); 37225723Steggessize_t write(int, const void *, size_t); 37325723Stegge 37425723Stegge/* 1003.2-1992 */ 375122719Salfred#if __POSIX_VISIBLE >= 199209 || __XSI_VISIBLE 37625723Steggesize_t confstr(int, char *, size_t); 37725723Steggeint getopt(int, char * const [], const char *); 37825723Stegge 37925723Steggeextern char *optarg; /* getopt(3) external variables */ 38025723Steggeextern int optind, opterr, optopt; 38125723Stegge#endif 38225723Stegge 38325723Stegge/* ISO/IEC 9945-1: 1996 */ 38425723Stegge#if __POSIX_VISIBLE >= 199506 || __XSI_VISIBLE 38525723Steggeint fsync(int); 38625723Stegge 38725723Stegge/* 38825723Stegge * ftruncate() was in the POSIX Realtime Extension (it's used for shared 38925723Stegge * memory), but truncate() was not. 39025723Stegge */ 39125723Stegge#ifndef _FTRUNCATE_DECLARED 39225723Stegge#define _FTRUNCATE_DECLARED 39325723Steggeint ftruncate(int, off_t); 39425723Stegge#endif 39525723Stegge#endif 39625723Stegge 39725723Stegge#if __POSIX_VISIBLE >= 199506 39825723Steggeint getlogin_r(char *, int); 39925723Stegge#endif 40025723Stegge 40125723Stegge/* 1003.1-2001 */ 40225723Stegge#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE 40325723Steggeint fchown(int, uid_t, gid_t); 40425723Steggeint readlink(const char *, char *, int); 40525723Stegge#endif 40625723Stegge#if __POSIX_VISIBLE >= 200112 40725723Steggeint gethostname(char *, int /* socklen_t */); 40825723Steggeint setegid(gid_t); 40925723Steggeint seteuid(uid_t); 41025723Stegge#endif 41125723Stegge 41225723Stegge/* 41325723Stegge * symlink() was originally in POSIX.1a, which was withdrawn after 41425723Stegge * being overtaken by events (1003.1-2001). It was in XPG4.2, and of 41525723Stegge * course has been in BSD since 4.2. 41625723Stegge */ 41725723Stegge#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 402 || __BSD_VISIBLE 41825723Steggeint symlink(const char * __restrict, const char * __restrict); 41925723Stegge#endif 42025723Stegge 42125723Stegge/* X/Open System Interfaces */ 42225723Stegge#if __XSI_VISIBLE 42325723Steggechar *crypt(const char *, const char *); 424122719Salfred/* char *ctermid(char *); */ /* XXX ??? */ 42525723Steggeint encrypt(char *, int); 42625723Steggeint fchdir(int); 42725723Steggelong gethostid(void); 42825723Steggeint getpgid(pid_t _pid); 42925723Steggeint getsid(pid_t _pid); 43025723Steggechar *getwd(char *); /* LEGACY: obsoleted by getcwd() */ 43125723Steggeint lchown(const char *, uid_t, gid_t); 43225723Steggeint lockf(int, int, off_t); 43325723Steggeint nice(int); 43425723Steggessize_t pread(int, void *, size_t, off_t); 43525723Steggessize_t pwrite(int, const void *, size_t, off_t); 43625723Steggeint setpgrp(pid_t _pid, pid_t _pgrp); /* obsoleted by setpgid() */ 43725723Steggeint setregid(gid_t, gid_t); 43825723Steggeint setreuid(uid_t, uid_t); 43925723Stegge/* void swab(const void * __restrict, void * __restrict, ssize_t); */ 44028270Swollmanvoid sync(void); 44125723Steggeuseconds_t ualarm(useconds_t, useconds_t); 44225723Steggeint usleep(useconds_t); 44325723Steggepid_t vfork(void); 44425723Stegge 44525723Stegge/* See comment at ftruncate() above. */ 44625723Stegge#ifndef _TRUNCATE_DECLARED 44725723Stegge#define _TRUNCATE_DECLARED 44825723Steggeint truncate(const char *, off_t); 44925723Stegge#endif 45025723Stegge#endif /* __XSI_VISIBLE */ 45125723Stegge 45225723Stegge#if __XSI_VISIBLE <= 500 || __BSD_VISIBLE 45325723Steggeint brk(const void *); 45425723Steggeint chroot(const char *); 45525723Steggeint getdtablesize(void); 45625723Steggeint getpagesize(void) __pure2; 45725723Steggechar *getpass(const char *); 45825723Steggevoid *sbrk(intptr_t); 45925723Stegge#endif 46083651Speter 46125723Stegge#if __BSD_VISIBLE 46225723Steggestruct timeval; /* select(2) */ 46325723Steggeint acct(const char *); 46425723Steggeint async_daemon(void); 46525723Steggeint check_utility_compat(const char *); 46625723Steggeconst char * 46725723Stegge crypt_get_format(void); 46825723Steggeint crypt_set_format(const char *); 46925723Steggeint des_cipher(const char *, char *, long, int); 47025723Steggeint des_setkey(const char *key); 47125723Steggevoid endusershell(void); 47225723Steggeint exect(const char *, char * const *, char * const *); 473111119Simpchar *fflagstostr(u_long); 47425723Steggeint getdomainname(char *, int); 475111119Simpint getgrouplist(const char *, gid_t, gid_t *, int *); 47625723Steggemode_t getmode(const void *, mode_t); 47725723Steggeint getpeereid(int, uid_t *, gid_t *); 47825723Steggeint getresgid(gid_t *, gid_t *, gid_t *); 47925723Steggeint getresuid(uid_t *, uid_t *, uid_t *); 48025723Steggechar *getusershell(void); 48125723Steggeint initgroups(const char *, gid_t); 48225723Steggeint iruserok(unsigned long, int, const char *, const char *); 48325723Steggeint iruserok_sa(const void *, int, int, const char *, const char *); 48425723Steggeint issetugid(void); 48525723Steggechar *mkdtemp(char *); 48625723Steggeint mknod(const char *, mode_t, dev_t); 487#ifndef _MKSTEMP_DECLARED 488int mkstemp(char *); 489#define _MKSTEMP_DECLARED 490#endif 491int mkstemps(char *, int); 492#ifndef _MKTEMP_DECLARED 493char *mktemp(char *); 494#define _MKTEMP_DECLARED 495#endif 496int nfsclnt(int, void *); 497int nfssvc(int, void *); 498int profil(char *, size_t, vm_offset_t, int); 499int rcmd(char **, int, const char *, const char *, const char *, int *); 500int rcmd_af(char **, int, const char *, 501 const char *, const char *, int *, int); 502int rcmdsh(char **, int, const char *, 503 const char *, const char *, const char *); 504char *re_comp(const char *); 505int re_exec(const char *); 506int reboot(int); 507int revoke(const char *); 508pid_t rfork(int); 509pid_t rfork_thread(int, void *, int (*)(void *), void *); 510int rresvport(int *); 511int rresvport_af(int *, int); 512int ruserok(const char *, int, const char *, const char *); 513#if __BSD_VISIBLE 514#ifndef _SELECT_DECLARED 515#define _SELECT_DECLARED 516int select(int, fd_set *, fd_set *, fd_set *, struct timeval *); 517#endif 518#endif 519int setdomainname(const char *, int); 520int setgroups(int, const gid_t *); 521void sethostid(long); 522int sethostname(const char *, int); 523#ifndef _SETKEY_DECLARED 524int setkey(const char *); 525#define _SETKEY_DECLARED 526#endif 527int setlogin(const char *); 528void *setmode(const char *); 529int setresgid(gid_t, gid_t, gid_t); 530int setresuid(uid_t, uid_t, uid_t); 531int setrgid(gid_t); 532int setruid(uid_t); 533void setusershell(void); 534int strtofflags(char **, u_long *, u_long *); 535int swapon(const char *); 536int swapoff(const char *); 537int syscall(int, ...); 538off_t __syscall(quad_t, ...); 539int ttyslot(void); 540int undelete(const char *); 541int unwhiteout(const char *); 542void *valloc(size_t); /* obsoleted by malloc() */ 543 544extern char *suboptarg; /* getsubopt(3) external variable */ 545#ifndef _GETSUBOPT_DECLARED 546int getsubopt(char **, char * const *, char **); 547#define _GETSUBOPT_DECLARED 548#endif 549extern int optreset; /* getopt(3) external variable */ 550#endif /* __BSD_VISIBLE */ 551__END_DECLS 552 553#endif /* !_UNISTD_H_ */ 554