xref: /openbsd/include/unistd.h (revision 404b540a)
1 /*	$OpenBSD: unistd.h,v 1.62 2008/06/25 14:58:54 millert Exp $ */
2 /*	$NetBSD: unistd.h,v 1.26.4.1 1996/05/28 02:31:51 mrg Exp $	*/
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.
16  * 3. Neither the name of the University nor the names of its contributors
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/cdefs.h>
39 #include <sys/types.h>
40 #include <sys/unistd.h>
41 
42 #define	STDIN_FILENO	0	/* standard input file descriptor */
43 #define	STDOUT_FILENO	1	/* standard output file descriptor */
44 #define	STDERR_FILENO	2	/* standard error file descriptor */
45 
46 #if __XPG_VISIBLE || __POSIX_VISIBLE >= 200112
47 #define F_ULOCK         0	/* unlock locked section */
48 #define F_LOCK          1	/* lock a section for exclusive use */
49 #define F_TLOCK         2	/* test and lock a section for exclusive use */
50 #define F_TEST          3	/* test a section for locks by other procs */
51 #endif
52 
53 #if __POSIX_VISIBLE
54 #define _POSIX_REENTRANT_FUNCTIONS	1
55 #define _POSIX_THREAD_SAFE_FUNCTIONS	200112L
56 #endif
57 
58 #ifndef NULL
59 #ifdef 	__GNUG__
60 #define	NULL	__null
61 #else
62 #define	NULL	0L
63 #endif
64 #endif
65 
66 __BEGIN_DECLS
67 __dead void	 _exit(int);
68 int	 access(const char *, int);
69 unsigned int alarm(unsigned int);
70 int	 chdir(const char *);
71 int	 chown(const char *, uid_t, gid_t);
72 int	 close(int);
73 int	 dup(int);
74 int	 dup2(int, int);
75 int	 execl(const char *, const char *, ...)
76 	    __attribute__((sentinel));
77 int	 execle(const char *, const char *, ...);
78 int	 execlp(const char *, const char *, ...)
79 	    __attribute__((sentinel));
80 int	 execv(const char *, char * const *);
81 int	 execve(const char *, char * const *, char * const *);
82 int	 execvp(const char *, char * const *);
83 pid_t	 fork(void);
84 long	 fpathconf(int, int);
85 char	*getcwd(char *, size_t)
86 		__attribute__((__bounded__(__string__,1,2)))
87 		__attribute__((__bounded__(__minbytes__,1,1024)));
88 gid_t	 getegid(void);
89 uid_t	 geteuid(void);
90 gid_t	 getgid(void);
91 int	 getgroups(int, gid_t *);
92 char	*getlogin(void);
93 pid_t	 getpgrp(void);
94 pid_t	 getpid(void);
95 pid_t	 getppid(void);
96 uid_t	 getuid(void);
97 int	 isatty(int);
98 int	 link(const char *, const char *);
99 off_t	 lseek(int, off_t, int);
100 long	 pathconf(const char *, int);
101 int	 pause(void);
102 int	 pipe(int *);
103 ssize_t	 read(int, void *, size_t)
104 		__attribute__((__bounded__(__buffer__,2,3)));
105 int	 rmdir(const char *);
106 int	 setgid(gid_t);
107 int	 setuid(uid_t);
108 unsigned int sleep(unsigned int);
109 long	 sysconf(int);
110 pid_t	 tcgetpgrp(int);
111 int	 tcsetpgrp(int, pid_t);
112 char	*ttyname(int);
113 int	 unlink(const char *);
114 ssize_t	 write(int, const void *, size_t)
115 		__attribute__((__bounded__(__buffer__,2,3)));
116 
117 #if __POSIX_VISIBLE || __XPG_VISIBLE >= 300
118 pid_t	 setsid(void);
119 int	 setpgid(pid_t, pid_t);
120 #endif
121 
122 #if __POSIX_VISIBLE >= 199209 || __XPG_VISIBLE
123 size_t	 confstr(int, char *, size_t)
124 		__attribute__((__bounded__(__string__,2,3)));
125 #ifndef _GETOPT_DEFINED_
126 #define _GETOPT_DEFINED_
127 int	 getopt(int, char * const *, const char *);
128 extern	 char *optarg;			/* getopt(3) external variables */
129 extern	 int opterr, optind, optopt, optreset;
130 /* XXX - getsubopt does not belong here */
131 int	 getsubopt(char **, char * const *, char **);
132 extern	 char *suboptarg;		/* getsubopt(3) external variable */
133 #endif /* _GETOPT_DEFINED_ */
134 #endif
135 
136 #if __POSIX_VISIBLE >= 199506 || __XPG_VISIBLE
137 int	 fsync(int);
138 int	 ftruncate(int, off_t);
139 int	 getlogin_r(char *, size_t)
140 		__attribute__((__bounded__(__string__,1,2)))
141 		__attribute__((__bounded__(__minbytes__,1,32)));
142 #endif
143 
144 #if __XPG_VISIBLE || __BSD_VISIBLE
145 char	*crypt(const char *, const char *);
146 int	 encrypt(char *, int);
147 int	 fchdir(int);
148 int	 fchown(int, uid_t, gid_t);
149 long	 gethostid(void);
150 char	*getwd(char *)
151 		__attribute__ ((__bounded__(__minbytes__,1,1024)));
152 int	 lchown(const char *, uid_t, gid_t);
153 int	 mkstemp(char *);
154 char	*mktemp(char *);
155 int	 nice(int);
156 int	 readlink(const char *, char *, size_t)
157 		__attribute__ ((__bounded__(__string__,2,3)));
158 int	 setkey(const char *);
159 int	 setpgrp(pid_t pid, pid_t pgrp);	/* obsoleted by setpgid() */
160 int	 setregid(gid_t, gid_t);
161 int	 setreuid(uid_t, uid_t);
162 void	 swab(const void *, void *, size_t);
163 void	 sync(void);
164 int	 truncate(const char *, off_t);
165 unsigned int	 ualarm(unsigned int, unsigned int);
166 int	 usleep(useconds_t);
167 pid_t	 vfork(void);
168 #endif
169 
170 #if __XPG_VISIBLE >= 420
171 pid_t	 getpgid(pid_t);
172 pid_t	 getsid(pid_t);
173 #endif
174 
175 #if __XPG_VISIBLE >= 500
176 ssize_t  pread(int, void *, size_t, off_t);
177 ssize_t  pwrite(int, const void *, size_t, off_t);
178 int	 ttyname_r(int, char *, size_t)
179 	    __attribute__((__bounded__(__string__,2,3)));
180 #endif
181 
182 #if __BSD_VISIBLE ||  __XPG_VISIBLE <= 500
183 /* Interfaces withdrawn by X/Open Issue 5 Version 0 */
184 int	 brk(void *);
185 int	 chroot(const char *);
186 int	 getdtablesize(void);
187 int	 getpagesize(void);
188 char	*getpass(const char *);
189 void	*sbrk(int);
190 #endif
191 
192 #if __POSIX_VISIBLE >= 200112 || __XPG_VISIBLE >= 420
193 int     lockf(int, int, off_t);
194 #endif
195 
196 #if __POSIX_VISIBLE >= 200112 || __XPG_VISIBLE >= 420 || __BSD_VISIBLE
197 int	 symlink(const char *, const char *);
198 int	 gethostname(char *, size_t)
199 		__attribute__ ((__bounded__(__string__,1,2)));
200 int	 setegid(gid_t);
201 int	 seteuid(uid_t);
202 #endif
203 
204 #if __BSD_VISIBLE
205 int	 acct(const char *);
206 int	 closefrom(int);
207 int	 des_cipher(const char *, char *, int32_t, int);
208 int	 des_setkey(const char *);
209 void	 endusershell(void);
210 int	 exect(const char *, char * const *, char * const *);
211 char	*fflagstostr(u_int32_t);
212 int	 getdomainname(char *, size_t)
213 		__attribute__ ((__bounded__(__string__,1,2)));
214 int	 getgrouplist(const char *, gid_t, gid_t *, int *);
215 mode_t	 getmode(const void *, mode_t);
216 int	 getresgid(gid_t *, gid_t *, gid_t *);
217 int	 getresuid(uid_t *, uid_t *, uid_t *);
218 char	*getusershell(void);
219 int	 initgroups(const char *, gid_t);
220 int	 iruserok(u_int32_t, int, const char *, const char *);
221 int	 iruserok_sa(const void *, int, int, const char *, const char *);
222 int	 issetugid(void);
223 char	*mkdtemp(char *);
224 int	 mkstemps(char *, int);
225 int	 nfssvc(int, void *);
226 int	 profil(char *, size_t, unsigned long, unsigned int)
227 		__attribute__ ((__bounded__(__string__,1,2)));
228 int	 quotactl(const char *, int, int, char *);
229 int	 rcmd(char **, int, const char *,
230 	    const char *, const char *, int *);
231 int	 rcmd_af(char **, int, const char *,
232 	    const char *, const char *, int *, int);
233 int	 rcmdsh(char **, int, const char *,
234 	    const char *, const char *, char *);
235 char	*re_comp(const char *);
236 int	 re_exec(const char *);
237 int	 reboot(int);
238 int	 revoke(const char *);
239 int	 rfork(int opts);
240 int	 rresvport(int *);
241 int	 rresvport_af(int *, int);
242 int	 ruserok(const char *, int, const char *, const char *);
243 #ifndef _SELECT_DEFINED_
244 #define _SELECT_DECLARED
245 struct timeval;
246 int	 select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
247 #endif
248 int	 setdomainname(const char *, size_t);
249 int	 setgroups(int, const gid_t *);
250 int	 sethostid(long);
251 int	 sethostname(const char *, size_t);
252 int	 setlogin(const char *);
253 void	*setmode(const char *);
254 int	 setresgid(gid_t, gid_t, gid_t);
255 int	 setresuid(uid_t, uid_t, uid_t);
256 int	 setrgid(gid_t);
257 int	 setruid(uid_t);
258 void	 setusershell(void);
259 int	 strtofflags(char **, u_int32_t *, u_int32_t *);
260 int	 swapctl(int cmd, const void *arg, int misc);
261 int	 syscall(int, ...);
262 #endif /* __BSD_VISIBLE */
263 __END_DECLS
264 
265 #endif /* !_UNISTD_H_ */
266