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