unistd.h revision 100140
11558Srgrimes/*- 21558Srgrimes * Copyright (c) 1991, 1993, 1994 31558Srgrimes * The Regents of the University of California. All rights reserved. 41558Srgrimes * 51558Srgrimes * Redistribution and use in source and binary forms, with or without 61558Srgrimes * modification, are permitted provided that the following conditions 71558Srgrimes * are met: 81558Srgrimes * 1. Redistributions of source code must retain the above copyright 91558Srgrimes * notice, this list of conditions and the following disclaimer. 101558Srgrimes * 2. Redistributions in binary form must reproduce the above copyright 111558Srgrimes * notice, this list of conditions and the following disclaimer in the 121558Srgrimes * documentation and/or other materials provided with the distribution. 131558Srgrimes * 3. All advertising materials mentioning features or use of this software 141558Srgrimes * must display the following acknowledgement: 151558Srgrimes * This product includes software developed by the University of 161558Srgrimes * California, Berkeley and its contributors. 171558Srgrimes * 4. Neither the name of the University nor the names of its contributors 181558Srgrimes * may be used to endorse or promote products derived from this software 191558Srgrimes * without specific prior written permission. 201558Srgrimes * 211558Srgrimes * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 221558Srgrimes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 231558Srgrimes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 241558Srgrimes * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 251558Srgrimes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 261558Srgrimes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 271558Srgrimes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 281558Srgrimes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 291558Srgrimes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 301558Srgrimes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 311558Srgrimes * SUCH DAMAGE. 321558Srgrimes * 331558Srgrimes * @(#)unistd.h 8.12 (Berkeley) 4/27/95 341558Srgrimes * $FreeBSD: head/include/unistd.h 100140 2002-07-15 20:33:58Z wollman $ 351558Srgrimes */ 361558Srgrimes 371558Srgrimes#ifndef _UNISTD_H_ 381558Srgrimes#define _UNISTD_H_ 391558Srgrimes 401558Srgrimes#include <sys/cdefs.h> 411558Srgrimes#include <sys/types.h> /* XXX adds too much pollution. */ 421558Srgrimes#include <sys/unistd.h> 431558Srgrimes#include <sys/_types.h> 441558Srgrimes 451558Srgrimes#ifdef _BSD_GID_T_ 461558Srgrimestypedef _BSD_GID_T_ gid_t; 471558Srgrimes#undef _BSD_GID_T_ 481558Srgrimes#endif 491558Srgrimes 501558Srgrimes#ifdef _BSD_SIZE_T_ 511558Srgrimestypedef _BSD_SIZE_T_ size_t; 521558Srgrimes#undef _BSD_SIZE_T_ 531558Srgrimes#endif 541558Srgrimes 551558Srgrimes#ifdef _BSD_SSIZE_T_ 561558Srgrimestypedef _BSD_SSIZE_T_ ssize_t; 571558Srgrimes#undef _BSD_SSIZE_T_ 581558Srgrimes#endif 591558Srgrimes 601558Srgrimes#ifdef _BSD_UID_T_ 611558Srgrimestypedef _BSD_UID_T_ uid_t; 621558Srgrimes#undef _BSD_UID_T_ 631558Srgrimes#endif 641558Srgrimes 651558Srgrimes/* 661558Srgrimes * XXX missing type definitions for off_t, pid_t and useconds_t. 671558Srgrimes */ 681558Srgrimes 691558Srgrimes#define STDIN_FILENO 0 /* standard input file descriptor */ 701558Srgrimes#define STDOUT_FILENO 1 /* standard output file descriptor */ 711558Srgrimes#define STDERR_FILENO 2 /* standard error file descriptor */ 721558Srgrimes 731558Srgrimes#ifndef NULL 741558Srgrimes#define NULL 0 /* null pointer constant */ 751558Srgrimes#endif 761558Srgrimes 771558Srgrimes#if __XSI_VISIBLE || __POSIX_VISIBLE >= 200112 781558Srgrimes#define F_ULOCK 0 /* unlock locked section */ 791558Srgrimes#define F_LOCK 1 /* lock a section for exclusive use */ 801558Srgrimes#define F_TLOCK 2 /* test and lock a section for exclusive use */ 811558Srgrimes#define F_TEST 3 /* test a section for locks by other procs */ 821558Srgrimes#endif 831558Srgrimes 841558Srgrimes__BEGIN_DECLS 851558Srgrimes/* 1003.1-1990 */ 861558Srgrimesvoid _exit(int) __dead2; 871558Srgrimesint access(const char *, int); 881558Srgrimesunsigned int alarm(unsigned int); 891558Srgrimesint chdir(const char *); 901558Srgrimesint chown(const char *, uid_t, gid_t); 911558Srgrimesint close(int); 921558Srgrimesint dup(int); 931558Srgrimesint dup2(int, int); 941558Srgrimesint eaccess(const char *, int); 951558Srgrimesint execl(const char *, const char *, ...); 961558Srgrimesint execle(const char *, const char *, ...); 971558Srgrimesint execlp(const char *, const char *, ...); 981558Srgrimesint execv(const char *, char * const *); 991558Srgrimesint execve(const char *, char * const *, char * const *); 1001558Srgrimesint execvp(const char *, char * const *); 1011558Srgrimespid_t fork(void); 1021558Srgrimeslong fpathconf(int, int); 1031558Srgrimeschar *getcwd(char *, size_t); 1041558Srgrimesgid_t getegid(void); 1051558Srgrimesuid_t geteuid(void); 1061558Srgrimesgid_t getgid(void); 1071558Srgrimesint getgroups(int, gid_t []); 1081558Srgrimeschar *getlogin(void); 1091558Srgrimespid_t getpgrp(void); 1101558Srgrimespid_t getpid(void); 1111558Srgrimespid_t getppid(void); 1121558Srgrimesuid_t getuid(void); 1131558Srgrimesint isatty(int); 1141558Srgrimesint link(const char *, const char *); 1151558Srgrimes#ifndef _LSEEK_DECLARED 1161558Srgrimes#define _LSEEK_DECLARED 1171558Srgrimesoff_t lseek(int, off_t, int); 1181558Srgrimes#endif 1191558Srgrimeslong pathconf(const char *, int); 1201558Srgrimesint pause(void); 1211558Srgrimesint pipe(int *); 1221558Srgrimesssize_t read(int, void *, size_t); 1231558Srgrimesint rmdir(const char *); 1241558Srgrimesint setgid(gid_t); 1251558Srgrimesint setpgid(pid_t, pid_t); 1261558Srgrimesvoid setproctitle(const char *_fmt, ...) __printf0like(1, 2); 1271558Srgrimespid_t setsid(void); 1281558Srgrimesint setuid(uid_t); 1291558Srgrimesunsigned int sleep(unsigned int); 1301558Srgrimeslong sysconf(int); 1311558Srgrimespid_t tcgetpgrp(int); 1321558Srgrimesint tcsetpgrp(int, pid_t); 1331558Srgrimeschar *ttyname(int); 1341558Srgrimesint unlink(const char *); 1351558Srgrimesssize_t write(int, const void *, size_t); 1361558Srgrimes 1371558Srgrimesextern char *optarg; /* getopt(3) external variables */ 1381558Srgrimesextern int optind, opterr, optopt; 1391558Srgrimesint getopt(int, char * const [], const char *); 1401558Srgrimes 1411558Srgrimes/* 1003.2-1992 */ 1421558Srgrimes#if __POSIX_VISIBLE >= 199209 1431558Srgrimessize_t confstr(int, char *, size_t); 1441558Srgrimes#endif 1451558Srgrimes 1461558Srgrimes/* ISO/IEC 9945-1: 1996 */ 1471558Srgrimes#if __POSIX_VISIBLE >= 199506 1481558Srgrimesint fsync(int); 1491558Srgrimes 1501558Srgrimes/* 1511558Srgrimes * ftruncate() was in the POSIX Realtime Extension (it's used for shared 1521558Srgrimes * memory), but truncate() was not. 1531558Srgrimes */ 1541558Srgrimes#ifndef _FTRUNCATE_DECLARED 1551558Srgrimes#define _FTRUNCATE_DECLARED 1561558Srgrimesint ftruncate(int, off_t); 1571558Srgrimes#endif 1581558Srgrimes 1591558Srgrimesint getlogin_r(char *, int); 1601558Srgrimes#endif 1611558Srgrimes 1621558Srgrimes/* 1003.1-2001 */ 1631558Srgrimes#if __POSIX_VISIBLE >= 200112 1641558Srgrimesint fchown(int, uid_t, gid_t); 1651558Srgrimesint gethostname(char *, int /* socklen_t */); 1661558Srgrimesint setegid(gid_t); 1671558Srgrimesint seteuid(uid_t); 1681558Srgrimes#endif 1691558Srgrimes 1701558Srgrimes/* 1711558Srgrimes * symlink() was originally in POSIX.1a, which was withdrawn after 1721558Srgrimes * being overtaken by events (1003.1-2001). It was in XPG4.2, and of 1731558Srgrimes * course has been in BSD practically forever. 1741558Srgrimes */ 1751558Srgrimes#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 402 || __BSD_VISIBLE 1761558Srgrimesint symlink(const char *__restrict, const char *__restrict); 1771558Srgrimes#endif 1781558Srgrimes 1791558Srgrimes/* X/Open System Interfaces */ 1801558Srgrimes#if __XSI_VISIBLE 1811558Srgrimeschar *crypt(const char *, const char *); 1821558Srgrimes/* char *ctermid(char *); */ /* XXX ??? */ 1831558Srgrimesint encrypt(char *, int); 1841558Srgrimesint fchdir(int); 1851558Srgrimesint getpgid(pid_t _pid); 1861558Srgrimesint getsid(pid_t _pid); 1871558Srgrimeschar *getwd(char *); /* LEGACY: obsoleted by getcwd() */ 1881558Srgrimesint lchown(const char *, uid_t, gid_t); 1891558Srgrimesint lockf(int, int, off_t); 1901558Srgrimesint nice(int); 1911558Srgrimesssize_t pread(int, void *, size_t, off_t); 1921558Srgrimesssize_t pwrite(int, const void *, size_t, off_t); 1931558Srgrimesint setpgrp(pid_t _pid, pid_t _pgrp); /* obsoleted by setpgid() */ 1941558Srgrimesint setregid(gid_t, gid_t); 1951558Srgrimesint setreuid(uid_t, uid_t); 1961558Srgrimes/* void swab(const void *__restrict, void *__restrict, ssize_t); */ 1971558Srgrimesvoid sync(void); 1981558Srgrimesunsigned int ualarm(unsigned int, unsigned int); 1991558Srgrimesint usleep(unsigned int); 2001558Srgrimespid_t vfork(void); 2011558Srgrimes 2021558Srgrimes/* See comment at ftruncate() above. */ 2031558Srgrimes#ifndef _TRUNCATE_DECLARED 2041558Srgrimes#define _TRUNCATE_DECLARED 2051558Srgrimesint truncate(const char *, off_t); 2061558Srgrimes#endif 2071558Srgrimes#endif /* __XSI_VISIBLE */ 2081558Srgrimes 2091558Srgrimes#if __BSD_VISIBLE 2101558Srgrimesstruct timeval; /* select(2) */ 2111558Srgrimesint acct(const char *); 2121558Srgrimesint async_daemon(void); 2131558Srgrimesint brk(const void *); 2141558Srgrimesint chroot(const char *); 2151558Srgrimesconst char * 2161558Srgrimes crypt_get_format(void); 2171558Srgrimesint crypt_set_format(const char *); 2181558Srgrimesint des_cipher(const char *, char *, long, int); 2191558Srgrimesint des_setkey(const char *key); 2201558Srgrimesvoid endusershell(void); 2211558Srgrimesint exect(const char *, char * const *, char * const *); 2221558Srgrimeschar *fflagstostr(u_long); 2231558Srgrimesint getdomainname(char *, int); 2241558Srgrimesint getdtablesize(void); 2251558Srgrimesint getgrouplist(const char *, gid_t, gid_t *, int *); 2261558Srgrimeslong gethostid(void); 2271558Srgrimesmode_t getmode(const void *, mode_t); 2281558Srgrimesint getpagesize(void) __pure2; 2291558Srgrimeschar *getpass(const char *); 2301558Srgrimesint getpeereid(int, uid_t *, gid_t *); 2311558Srgrimesint getresgid(gid_t *, gid_t *, gid_t *); 2321558Srgrimesint getresuid(uid_t *, uid_t *, uid_t *); 2331558Srgrimeschar *getusershell(void); 2341558Srgrimesint initgroups(const char *, gid_t); 2351558Srgrimesint iruserok(unsigned long, int, const char *, const char *); 2361558Srgrimesint iruserok_sa(const void *, int, int, const char *, const char *); 2371558Srgrimesint issetugid(void); 2381558Srgrimeschar *mkdtemp(char *); 2391558Srgrimesint mknod(const char *, mode_t, dev_t); 2401558Srgrimesint mkstemp(char *); 2411558Srgrimesint mkstemps(char *, int); 2421558Srgrimeschar *mktemp(char *); 2431558Srgrimesint nfsclnt(int, void *); 2441558Srgrimesint nfssvc(int, void *); 2451558Srgrimesint profil(char *, size_t, vm_offset_t, int); 2461558Srgrimesint rcmd(char **, int, const char *, const char *, const char *, int *); 2471558Srgrimesint rcmd_af(char **, int, const char *, 2481558Srgrimes const char *, const char *, int *, int); 2491558Srgrimesint rcmdsh(char **, int, const char *, 2501558Srgrimes const char *, const char *, const char *); 2511558Srgrimeschar *re_comp(const char *); 2521558Srgrimesint re_exec(const char *); 2531558Srgrimesint readlink(const char *, char *, int); 2541558Srgrimesint reboot(int); 2551558Srgrimesint revoke(const char *); 2561558Srgrimespid_t rfork(int); 2571558Srgrimespid_t rfork_thread(int, void *, int (*)(void *), void *); 2581558Srgrimesint rresvport(int *); 2591558Srgrimesint rresvport_af(int *, int); 2601558Srgrimesint ruserok(const char *, int, const char *, const char *); 2611558Srgrimesvoid *sbrk(intptr_t); 2621558Srgrimesint select(int, fd_set *, fd_set *, fd_set *, struct timeval *); 2631558Srgrimesint setdomainname(const char *, int); 2641558Srgrimesint setgroups(int, const gid_t *); 2651558Srgrimesvoid sethostid(long); 2661558Srgrimesint sethostname(const char *, int); 2671558Srgrimesint setkey(const char *); 2681558Srgrimesint setlogin(const char *); 2691558Srgrimesvoid *setmode(const char *); 2701558Srgrimesint setresgid(gid_t, gid_t, gid_t); 2711558Srgrimesint setresuid(uid_t, uid_t, uid_t); 2721558Srgrimesint setrgid(gid_t); 2731558Srgrimesint setruid(uid_t); 2741558Srgrimesvoid setusershell(void); 2751558Srgrimesint strtofflags(char **, u_long *, u_long *); 2761558Srgrimesint swapon(const char *); 2771558Srgrimesint syscall(int, ...); 2781558Srgrimesoff_t __syscall(quad_t, ...); 2791558Srgrimesint ttyslot(void); 2801558Srgrimesint undelete(const char *); 2811558Srgrimesint unwhiteout(const char *); 2821558Srgrimesvoid *valloc(size_t); /* obsoleted by malloc() */ 2831558Srgrimes 2841558Srgrimesextern char *suboptarg; /* getsubopt(3) external variable */ 2851558Srgrimesint getsubopt(char **, char * const *, char **); 2861558Srgrimesextern int optreset; /* getopt(3) external variable */ 2871558Srgrimes#endif /* __BSD_VISIBLE */ 2881558Srgrimes__END_DECLS 2891558Srgrimes 2901558Srgrimes#endif /* !_UNISTD_H_ */ 2911558Srgrimes