unistd.h revision 1.85
1/* $NetBSD: unistd.h,v 1.85 2000/06/27 05:51:54 kleink Exp $ */ 2 3/*- 4 * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by Klaus Klein. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 3. All advertising materials mentioning features or use of this software 19 * must display the following acknowledgement: 20 * This product includes software developed by the NetBSD 21 * Foundation, Inc. and its contributors. 22 * 4. Neither the name of The NetBSD Foundation nor the names of its 23 * contributors may be used to endorse or promote products derived 24 * from this software without specific prior written permission. 25 * 26 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 27 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 28 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 29 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 30 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 * POSSIBILITY OF SUCH DAMAGE. 37 */ 38 39/* 40 * Copyright (c) 1991, 1993, 1994 41 * The Regents of the University of California. All rights reserved. 42 * 43 * Redistribution and use in source and binary forms, with or without 44 * modification, are permitted provided that the following conditions 45 * are met: 46 * 1. Redistributions of source code must retain the above copyright 47 * notice, this list of conditions and the following disclaimer. 48 * 2. Redistributions in binary form must reproduce the above copyright 49 * notice, this list of conditions and the following disclaimer in the 50 * documentation and/or other materials provided with the distribution. 51 * 3. All advertising materials mentioning features or use of this software 52 * must display the following acknowledgement: 53 * This product includes software developed by the University of 54 * California, Berkeley and its contributors. 55 * 4. Neither the name of the University nor the names of its contributors 56 * may be used to endorse or promote products derived from this software 57 * without specific prior written permission. 58 * 59 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 60 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 61 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 62 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 63 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 64 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 65 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 66 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 67 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 68 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 69 * SUCH DAMAGE. 70 * 71 * @(#)unistd.h 8.12 (Berkeley) 4/27/95 72 */ 73 74#ifndef _UNISTD_H_ 75#define _UNISTD_H_ 76 77#include <machine/ansi.h> 78#include <machine/int_types.h> 79#include <sys/cdefs.h> 80#include <sys/featuretest.h> 81#include <sys/types.h> 82#include <sys/unistd.h> 83 84 85/* 86 * IEEE Std 1003.1-90 87 */ 88#define STDIN_FILENO 0 /* standard input file descriptor */ 89#define STDOUT_FILENO 1 /* standard output file descriptor */ 90#define STDERR_FILENO 2 /* standard error file descriptor */ 91 92#include <sys/null.h> 93 94__BEGIN_DECLS 95__dead void _exit __P((int)) __attribute__((__noreturn__)); 96int access __P((const char *, int)); 97unsigned int alarm __P((unsigned int)); 98int chdir __P((const char *)); 99#if defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) 100int chown __P((const char *, uid_t, gid_t)) __RENAME(__posix_chown); 101#else 102int chown __P((const char *, uid_t, gid_t)); 103#endif /* defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) */ 104int close __P((int)); 105size_t confstr __P((int, char *, size_t)); 106char *cuserid __P((char *)); /* obsolete */ 107int dup __P((int)); 108int dup2 __P((int, int)); 109int execl __P((const char *, const char *, ...)); 110int execle __P((const char *, const char *, ...)); 111int execlp __P((const char *, const char *, ...)); 112int execv __P((const char *, char * const *)); 113int execve __P((const char *, char * const *, char * const *)); 114int execvp __P((const char *, char * const *)); 115pid_t fork __P((void)); 116long fpathconf __P((int, int)); 117char *getcwd __P((char *, size_t)); 118gid_t getegid __P((void)); 119uid_t geteuid __P((void)); 120gid_t getgid __P((void)); 121int getgroups __P((int, gid_t [])); 122__aconst char *getlogin __P((void)); 123pid_t getpgrp __P((void)); 124pid_t getpid __P((void)); 125pid_t getppid __P((void)); 126uid_t getuid __P((void)); 127int isatty __P((int)); 128int link __P((const char *, const char *)); 129off_t lseek __P((int, off_t, int)); 130long pathconf __P((const char *, int)); 131int pause __P((void)); 132int pipe __P((int *)); 133ssize_t read __P((int, void *, size_t)); 134int rmdir __P((const char *)); 135int setgid __P((gid_t)); 136int setpgid __P((pid_t, pid_t)); 137pid_t setsid __P((void)); 138int setuid __P((uid_t)); 139unsigned int sleep __P((unsigned int)); 140long sysconf __P((int)); 141pid_t tcgetpgrp __P((int)); 142int tcsetpgrp __P((int, pid_t)); 143__aconst char *ttyname __P((int)); 144int unlink __P((const char *)); 145ssize_t write __P((int, const void *, size_t)); 146 147 148/* 149 * IEEE Std 1003.2-92, adopted in X/Open Portability Guide Issue 4 and later 150 */ 151#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \ 152 (_POSIX_C_SOURCE - 0) >= 2 || (_XOPEN_SOURCE - 0) >= 4 153int getopt __P((int, char * const [], const char *)); 154 155extern char *optarg; /* getopt(3) external variables */ 156extern int opterr; 157extern int optind; 158extern int optopt; 159#endif 160 161 162/* 163 * IEEE Std 1003.1b-93, 164 * also found in X/Open Portability Guide >= Issue 4 Verion 2 165 */ 166#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \ 167 (_POSIX_C_SOURCE - 0) >= 199309L || \ 168 (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \ 169 (_XOPEN_SOURCE - 0) >= 500 170int ftruncate __P((int, off_t)); 171#endif 172 173 174/* 175 * IEEE Std 1003.1b-93, adopted in X/Open CAE Specification Issue 5 Version 2 176 */ 177#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \ 178 (_POSIX_C_SOURCE - 0) >= 199309L || (_XOPEN_SOURCE - 0) >= 500 179int fdatasync __P((int)); 180int fsync __P((int)); 181#endif 182 183 184/* 185 * X/Open Portability Guide, all issues 186 */ 187#if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) 188int chroot __P((const char *)); 189int nice __P((int)); 190#endif 191 192 193/* 194 * X/Open Portability Guide <= Issue 3 195 */ 196#if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0) <= 3 197int rename __P((const char *, const char *)) __RENAME(__posix_rename); 198#endif 199 200 201/* 202 * X/Open Portability Guide >= Issue 4 203 */ 204#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \ 205 (_XOPEN_SOURCE - 0) >= 4 206__aconst char *crypt __P((const char *, const char *)); 207int encrypt __P((char *, int)); 208char *getpass __P((const char *)); 209pid_t getsid __P((pid_t)); 210#endif 211 212 213/* 214 * X/Open Portability Guide >= Issue 4 Version 2 215 */ 216#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \ 217 (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) || \ 218 (_XOPEN_SOURCE - 0) >= 500 219#ifndef intptr_t 220typedef __intptr_t intptr_t; 221#define intptr_t intptr_t 222#endif 223 224#define F_ULOCK 0 225#define F_LOCK 1 226#define F_TLOCK 2 227#define F_TEST 3 228 229int brk __P((void *)); 230int fchdir __P((int)); 231#if defined(_XOPEN_SOURCE) 232int fchown __P((int, uid_t, gid_t)) __RENAME(__posix_fchown); 233#else 234int fchown __P((int, uid_t, gid_t)); 235#endif 236int getdtablesize __P((void)); 237long gethostid __P((void)); 238int gethostname __P((char *, size_t)); 239__pure int 240 getpagesize __P((void)); /* legacy */ 241pid_t getpgid __P((pid_t)); 242#if defined(_XOPEN_SOURCE) 243int lchown __P((const char *, uid_t, gid_t)) __RENAME(__posix_lchown); 244#else 245int lchown __P((const char *, uid_t, gid_t)); 246#endif 247int lockf __P((int, int, off_t)); 248int readlink __P((const char *, char *, size_t)); 249void *sbrk __P((intptr_t)); 250/* XXX prototype wrong! */ 251int setpgrp __P((pid_t pid, pid_t pgrp)); /* obsoleted by setpgid() */ 252int setregid __P((gid_t, gid_t)); 253int setreuid __P((uid_t, uid_t)); 254void swab __P((const void *, void *, size_t)); 255int symlink __P((const char *, const char *)); 256void sync __P((void)); 257int truncate __P((const char *, off_t)); 258useconds_t ualarm __P((useconds_t, useconds_t)); 259int usleep __P((useconds_t)); 260#ifdef __LIBC12_SOURCE__ 261pid_t vfork __P((void)); 262pid_t __vfork14 __P((void)); 263#else 264pid_t vfork __P((void)) __RENAME(__vfork14); 265#endif 266 267#ifndef __AUDIT__ 268char *getwd __P((char *)); /* obsoleted by getcwd() */ 269#endif 270 271/* FIXME: this should go to <sys/time.h>! */ 272#if __STDC__ 273struct timeval; /* select(2) XXX */ 274#endif 275int select __P((int, fd_set *, fd_set *, fd_set *, struct timeval *)); 276#endif /* (!defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)) || ... */ 277 278 279/* 280 * X/Open CAE Specification Issue 5 Version 2 281 */ 282#if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \ 283 (_XOPEN_SOURCE - 0) >= 500 284ssize_t pread __P((int, void *, size_t, off_t)); 285ssize_t pwrite __P((int, const void *, size_t, off_t)); 286#endif 287 288 289/* 290 * Implementation-defined extensions 291 */ 292#if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) 293int acct __P((const char *)); 294int des_cipher __P((const char *, char *, long, int)); 295int des_setkey __P((const char *key)); 296void endusershell __P((void)); 297int exect __P((const char *, char * const *, char * const *)); 298int fchroot __P((int)); 299int getdomainname __P((char *, size_t)); 300int getgrouplist __P((const char *, gid_t, gid_t *, int *)); 301mode_t getmode __P((const void *, mode_t)); 302int getsubopt __P((char **, char * const *, char **)); 303__aconst char *getusershell __P((void)); 304int initgroups __P((const char *, gid_t)); 305int iruserok __P((u_int32_t, int, const char *, const char *)); 306int issetugid __P((void)); 307int nfssvc __P((int, void *)); 308int profil __P((char *, size_t, u_long, u_int)); 309void psignal __P((unsigned int, const char *)); 310int rcmd __P((char **, int, const char *, 311 const char *, const char *, int *)); 312int reboot __P((int, char *)); 313int revoke __P((const char *)); 314int rresvport __P((int *)); 315int ruserok __P((const char *, int, const char *, const char *)); 316int setdomainname __P((const char *, size_t)); 317int setegid __P((gid_t)); 318int seteuid __P((uid_t)); 319int setgroups __P((int, const gid_t *)); 320int sethostid __P((long)); 321int sethostname __P((const char *, size_t)); 322int setlogin __P((const char *)); 323void *setmode __P((const char *)); 324int setrgid __P((gid_t)); 325int setruid __P((uid_t)); 326void setusershell __P((void)); 327void strmode __P((mode_t, char *)); 328__aconst char *strsignal __P((int)); 329int swapctl __P((int, const void *, int)); 330int swapon __P((const char *)); /* obsoleted by swapctl() */ 331int syscall __P((int, ...)); 332quad_t __syscall __P((quad_t, ...)); 333int undelete __P((const char *)); 334 335#if 1 /*INET6*/ 336int rcmd_af __P((char **, int, const char *, 337 const char *, const char *, int *, int)); 338int rresvport_af __P((int *, int)); 339int iruserok_sa __P((const void *, int, int, const char *, const char *)); 340#endif 341 342extern __const char *__const *sys_siglist __RENAME(__sys_siglist14); 343extern int optreset; /* getopt(3) external variable */ 344extern char *suboptarg; /* getsubopt(3) external variable */ 345#endif 346 347__END_DECLS 348 349#endif /* !_UNISTD_H_ */ 350