unistd.h
1 /* Copyright (c) 1988 AT&T */
2 /* All Rights Reserved */
3
4 /* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
5 /* The copyright notice above does not evidence any */
6 /* actual or intended publication of such source code. */
7
8 /*
9 * Copyright (c) 1996-1999 by Sun Microsystems, Inc.
10 * All rights reserved.
11 */
12
13 #ifndef _UNISTD_H
14 #define _UNISTD_H
15
16 #pragma ident "@(#)unistd.h 1.58 99/11/11 SMI" /* SVr4.0 1.26 */
17
18 #include
19
20 #include
21 #include
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /* Symbolic constants for the "access" routine: */
28 #define R_OK 4 /* Test for Read permission */
29 #define W_OK 2 /* Test for Write permission */
30 #define X_OK 1 /* Test for eXecute permission */
31 #define F_OK 0 /* Test for existence of File */
32
33 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
34 defined(_XPG4_2) || defined(__EXTENSIONS__)
35 #define F_ULOCK 0 /* Unlock a previously locked region */
36 #define F_LOCK 1 /* Lock a region for exclusive use */
37 #define F_TLOCK 2 /* Test and lock a region for exclusive use */
38 #define F_TEST 3 /* Test a region for other processes locks */
39 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
40
41 /* Symbolic constants for the "lseek" routine: */
42
43 #ifndef SEEK_SET
44 #define SEEK_SET 0 /* Set file pointer to "offset" */
45 #endif
46
47 #ifndef SEEK_CUR
48 #define SEEK_CUR 1 /* Set file pointer to current plus "offset" */
49 #endif
50
51 #ifndef SEEK_END
52 #define SEEK_END 2 /* Set file pointer to EOF plus "offset" */
53 #endif
54
55 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
56 defined(__EXTENSIONS__)
57 /* Path names: */
58 #define GF_PATH "/etc/group" /* Path name of the "group" file */
59 #define PF_PATH "/etc/passwd" /* Path name of the "passwd" file */
60 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
61
62 /*
63 * compile-time symbolic constants,
64 * Support does not mean the feature is enabled.
65 * Use pathconf/sysconf to obtain actual configuration value.
66 */
67 #define _POSIX_ASYNC_IO 1
68 #define _POSIX_ASYNCHRONOUS_IO 1
69 #define _POSIX_FSYNC 1
70 #define _POSIX_JOB_CONTROL 1
71 #define _POSIX_MAPPED_FILES 1
72 #define _POSIX_MEMLOCK 1
73 #define _POSIX_MEMLOCK_RANGE 1
74 #define _POSIX_MEMORY_PROTECTION 1
75 #define _POSIX_MESSAGE_PASSING 1
76 #define _POSIX_PRIORITY_SCHEDULING 1
77 #define _POSIX_REALTIME_SIGNALS 1
78 #define _POSIX_SAVED_IDS 1
79 #define _POSIX_SEMAPHORES 1
80 #define _POSIX_SHARED_MEMORY_OBJECTS 1
81 #define _POSIX_SYNC_IO 1
82 #define _POSIX_SYNCHRONIZED_IO 1
83 #define _POSIX_TIMERS 1
84 /*
85 * POSIX.4a compile-time symbolic constants.
86 */
87 #define _POSIX_THREAD_SAFE_FUNCTIONS 1
88 #define _POSIX_THREADS 1
89 #define _POSIX_THREAD_ATTR_STACKADDR 1
90 #define _POSIX_THREAD_ATTR_STACKSIZE 1
91 #define _POSIX_THREAD_PROCESS_SHARED 1
92 #define _POSIX_THREAD_PRIORITY_SCHEDULING 1
93
94 /*
95 * Support for the POSIX.1 mutex protocol attribute. For realtime applications
96 * which need mutexes to support priority inheritance/ceiling.
97 */
98 #define _POSIX_THREAD_PRIO_INHERIT 1
99 #define _POSIX_THREAD_PRIO_PROTECT 1
100
101 #ifndef _POSIX_VDISABLE
102 #define _POSIX_VDISABLE 0
103 #endif
104
105 #ifndef NULL
106 #if defined(_LP64) && !defined(__cplusplus)
107 #define NULL 0L
108 #else
109 #define NULL 0
110 #endif
111 #endif
112
113 #define STDIN_FILENO 0
114 #define STDOUT_FILENO 1
115 #define STDERR_FILENO 2
116
117 /*
118 * Large File Summit-related announcement macros. The system supports both
119 * the additional and transitional Large File Summit interfaces. (The final
120 * two macros provide a finer granularity breakdown of _LFS64_LARGEFILE.)
121 */
122 #define _LFS_LARGEFILE 1
123 #define _LFS64_LARGEFILE 1
124 #define _LFS64_STDIO 1
125 #define _LFS64_ASYNCHRONOUS_IO 1
126
127 /* large file compilation environment setup */
128 #if !defined(_LP64) && _FILE_OFFSET_BITS == 64
129 #ifdef __PRAGMA_REDEFINE_EXTNAME
130 #pragma redefine_extname ftruncate ftruncate64
131 #pragma redefine_extname lseek lseek64
132 #pragma redefine_extname pread pread64
133 #pragma redefine_extname pwrite pwrite64
134 #pragma redefine_extname truncate truncate64
135 #pragma redefine_extname lockf lockf64
136 #pragma redefine_extname tell tell64
137 #else /* __PRAGMA_REDEFINE_EXTNAME */
138 #define ftruncate ftruncate64
139 #define lseek lseek64
140 #define pread pread64
141 #define pwrite pwrite64
142 #define truncate truncate64
143 #define lockf lockf64
144 #define tell tell64
145 #endif /* __PRAGMA_REDEFINE_EXTNAME */
146 #endif /* !_LP64 && _FILE_OFFSET_BITS == 64 */
147
148 /* In the LP64 compilation environment, the APIs are already large file */
149 #if defined(_LP64) && defined(_LARGEFILE64_SOURCE)
150 #ifdef __PRAGMA_REDEFINE_EXTNAME
151 #pragma redefine_extname ftruncate64 ftruncate
152 #pragma redefine_extname lseek64 lseek
153 #pragma redefine_extname pread64 pread
154 #pragma redefine_extname pwrite64 pwrite
155 #pragma redefine_extname truncate64 truncate
156 #pragma redefine_extname lockf64 lockf
157 #pragma redefine_extname tell64 tell
158 #else /* __PRAGMA_REDEFINE_EXTNAME */
159 #define ftruncate64 ftruncate
160 #define lseek64 lseek
161 #define pread64 pread
162 #define pwrite64 pwrite
163 #define truncate64 truncate
164 #define lockf64 lockf
165 #define tell64 tell
166 #endif /* __PRAGMA_REDEFINE_EXTNAME */
167 #endif /* _LP64 && _LARGEFILE64_SOURCE */
168
169 #if defined(__STDC__)
170
171 extern int access(const char *, int);
172 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
173 defined(__EXTENSIONS__)
174 extern int acct(const char *);
175 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
176 extern unsigned alarm(unsigned);
177 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
178 defined(_XPG4_2) || defined(__EXTENSIONS__)
179 extern int brk(void *);
180 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
181 extern int chdir(const char *);
182 extern int chown(const char *, uid_t, gid_t);
183 #if (!defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)) || \
184 defined(__EXTENSIONS__)
185 extern int chroot(const char *);
186 #endif /* (!defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE))... */
187 extern int close(int);
188 #if (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)) || \
189 defined(__EXTENSIONS__)
190 extern size_t confstr(int, char *, size_t);
191 extern char *crypt(const char *, const char *);
192 #endif /* (defined(XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4))... */
193 #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
194 defined(__EXTENSIONS__)
195 extern char *ctermid(char *);
196 #endif /* (!defined(_POSIX_C_SOURCE) ... */
197 #ifdef _REENTRANT
198 extern char *ctermid_r(char *);
199 #endif /* _REENTRANT */
200 extern char *cuserid(char *);
201 extern int dup(int);
202 extern int dup2(int, int);
203 #if (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)) || \
204 defined(__EXTENSIONS__)
205 extern void encrypt(char *, int);
206 #endif /* (defined(XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4))... */
207 extern int execl(const char *, const char *, ...);
208 extern int execle(const char *, const char *, ...);
209 extern int execlp(const char *, const char *, ...);
210 extern int execv(const char *, char *const *);
211 extern int execve(const char *, char *const *, char *const *);
212 extern int execvp(const char *, char *const *);
213 extern void _exit(int);
214 /*
215 * The following fattach prototype is duplicated in . The
216 * duplication is necessitated by XPG4.2 which requires the prototype
217 * be defined in .
218 */
219 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
220 defined(__EXTENSIONS__)
221 extern int fattach(int, const char *);
222 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
223 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
224 defined(_XPG4_2) || defined(__EXTENSIONS__)
225 extern int fchdir(int);
226 extern int fchown(int, uid_t, gid_t);
227 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
228 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
229 defined(__EXTENSIONS__)
230 extern int fchroot(int);
231 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
232 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) || \
233 (_POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
234 extern int fdatasync(int);
235 #endif /* (!defined(_POSIX_C_SOURCE) && ! defined(_XOPEN_SOURCE))... */
236 /*
237 * The following fdetach prototype is duplicated in . The
238 * duplication is necessitated by XPG4.2 which requires the prototype
239 * be defined in .
240 */
241 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
242 defined(__EXTENSIONS__)
243 extern int fdetach(const char *);
244 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
245 extern pid_t fork(void);
246 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
247 defined(__EXTENSIONS__)
248 extern pid_t fork1(void);
249 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
250 extern long fpathconf(int, int);
251 #if !defined(_POSIX_C_SOURCE) || (_POSIX_C_SOURCE > 2) || \
252 defined(__EXTENSIONS__)
253 extern int fsync(int);
254 #endif /* !defined(_POSIX_C_SOURCE) || (_POSIX_C_SOURCE > 2)... */
255 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
256 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64) || \
257 (_POSIX_C_SOURCE > 2) || defined(_XPG4_2) || defined(__EXTENSIONS__)
258 extern int ftruncate(int, off_t);
259 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
260 extern char *getcwd(char *, size_t);
261 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
262 defined(_XPG4_2) || defined(__EXTENSIONS__)
263 extern int getdtablesize(void);
264 #endif
265 extern gid_t getegid(void);
266 extern uid_t geteuid(void);
267 extern gid_t getgid(void);
268 extern int getgroups(int, gid_t *);
269 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
270 defined(_XPG4_2) || defined(__EXTENSIONS__)
271 extern long gethostid(void);
272 #endif
273 #if defined(_XPG4_2)
274 extern int gethostname(char *, size_t);
275 #elif defined(__EXTENSIONS__) || \
276 (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))
277 extern int gethostname(char *, int);
278 #endif
279 extern char *getlogin(void);
280 #if (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)) || \
281 defined(__EXTENSIONS__)
282 extern int getopt(int, char *const *, const char *);
283 extern char *optarg;
284 extern int opterr, optind, optopt;
285 extern char *getpass(const char *);
286 #endif /* (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4))... */
287 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
288 defined(_XPG4_2) || defined(__EXTENSIONS__)
289 extern int getpagesize(void);
290 extern pid_t getpgid(pid_t);
291 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
292 extern pid_t getpid(void);
293 extern pid_t getppid(void);
294 extern pid_t getpgrp(void);
295 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
296 defined(__EXTENSIONS__)
297 char *gettxt(const char *, const char *);
298 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
299 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
300 defined(_XPG4_2) || defined(__EXTENSIONS__)
301 extern pid_t getsid(pid_t);
302 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
303 extern uid_t getuid(void);
304 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
305 defined(_XPG4_2) || defined(__EXTENSIONS__)
306 extern char *getwd(char *);
307 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
308 /*
309 * The following ioctl prototype is duplicated in . The
310 * duplication is necessitated by XPG4.2 which requires the prototype
311 * be defined in .
312 */
313 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
314 defined(__EXTENSIONS__)
315 extern int ioctl(int, int, ...);
316 #endif
317 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
318 defined(__EXTENSIONS__)
319 extern int isaexec(const char *, char *const *, char *const *);
320 #endif
321 extern int isatty(int);
322 extern int link(const char *, const char *);
323 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
324 defined(_XPG4_2) || defined(__EXTENSIONS__)
325 extern int lchown(const char *, uid_t, gid_t);
326 #endif
327 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
328 defined(_XPG4_2) || defined(__EXTENSIONS__) || \
329 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64)
330 extern int lockf(int, int, off_t);
331 #endif
332 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
333 defined(_XPG4_2) || defined(__EXTENSIONS__)
334 extern int readlink(const char *, char *, size_t);
335 #endif
336 extern off_t lseek(int, off_t, int);
337 #if (!defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)) || \
338 defined(__EXTENSIONS__)
339 extern int nice(int);
340 #endif /* (!defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE))... */
341 extern long pathconf(const char *, int);
342 extern int pause(void);
343 extern int pipe(int *);
344 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
345 defined(__EXTENSIONS__)
346 extern offset_t llseek(int, offset_t, int);
347 #endif
348 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
349 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64) || \
350 defined(__EXTENSIONS__)
351 extern off_t tell(int);
352 #endif
353 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
354 defined(__EXTENSIONS__)
355 extern int mincore(caddr_t, size_t, char *);
356 #endif
357 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
358 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64) || \
359 defined(_XPG5) || defined(__EXTENSIONS__)
360 extern ssize_t pread(int, void *, size_t, off_t);
361 #endif
362 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
363 defined(__EXTENSIONS__)
364 extern void profil(unsigned short *, size_t, unsigned long, unsigned int);
365 #endif
366 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
367 (_POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
368 extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void));
369 #endif
370 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
371 defined(__EXTENSIONS__)
372 extern long ptrace(int, pid_t, long, long);
373 #endif
374 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
375 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64) || \
376 defined(_XPG5) || defined(__EXTENSIONS__)
377 extern ssize_t pwrite(int, const void *, size_t, off_t);
378 #endif
379 extern ssize_t read(int, void *, size_t);
380 #if (!defined(_POSIX_C_SOURCE) && (_XOPEN_VERSION - 0 < 4)) || \
381 defined(__EXTENSIONS__)
382 extern int rename(const char *, const char *);
383 #endif /* (!defined(_POSIX_C_SOURCE) && (_XOPEN_VERSION - 0 < 4))... */
384 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
385 defined(__EXTENSIONS__)
386 extern int resolvepath(const char *, char *, size_t);
387 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
388 extern int rmdir(const char *);
389 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
390 defined(_XPG4_2) || defined(__EXTENSIONS__)
391 extern void *sbrk(intptr_t);
392 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
393 extern int setgid(gid_t);
394 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
395 defined(__EXTENSIONS__)
396 extern int setegid(gid_t);
397 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
398 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
399 defined(__EXTENSIONS__)
400 extern int setgroups(int, const gid_t *);
401 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
402 extern int setpgid(pid_t, pid_t);
403 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
404 defined(_XPG4_2) || defined(__EXTENSIONS__)
405 extern pid_t setpgrp(void);
406 extern int setregid(gid_t, gid_t);
407 extern int setreuid(uid_t, uid_t);
408 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
409 extern pid_t setsid(void);
410 extern int setuid(uid_t);
411 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
412 defined(__EXTENSIONS__)
413 extern int seteuid(uid_t);
414 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
415 extern unsigned sleep(unsigned);
416 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
417 defined(__EXTENSIONS__)
418 extern int stime(const time_t *);
419 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
420 #if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
421 /* __EXTENSIONS__ makes the SVID Third Edition prototype in stdlib.h visible */
422 extern void swab(const void *, void *, ssize_t);
423 #endif /* defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) */
424 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
425 defined(_XPG4_2) || defined(__EXTENSIONS__)
426 extern int symlink(const char *, const char *);
427 extern void sync(void);
428 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
429 extern long sysconf(int);
430 #if defined(_XPG5)
431 #ifdef __PRAGMA_REDEFINE_EXTNAME
432 #pragma redefine_extname sysconf __sysconf_xpg5
433 #else /* __PRAGMA_REDEFINE_EXTNAME */
434 extern long __sysconf_xpg5(int);
435 #define sysconf __sysconf_xpg5
436 #endif /* __PRAGMA_REDEFINE_EXTNAME */
437 #endif /* defined(_XPG5) */
438 extern pid_t tcgetpgrp(int);
439 extern int tcsetpgrp(int, pid_t);
440 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
441 defined(__EXTENSIONS__)
442 extern off_t tell(int);
443 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
444 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
445 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64) || \
446 defined(_XPG4_2) || defined(__EXTENSIONS__)
447 extern int truncate(const char *, off_t);
448 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
449 extern char *ttyname(int);
450 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
451 defined(_XPG4_2) || defined(__EXTENSIONS__)
452 extern useconds_t ualarm(useconds_t, useconds_t);
453 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
454 extern int unlink(const char *);
455 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
456 defined(_XPG4_2) || defined(__EXTENSIONS__)
457 extern int usleep(useconds_t);
458 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
459 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
460 defined(_XPG4_2) || defined(__EXTENSIONS__)
461 extern pid_t vfork(void);
462 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
463 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
464 defined(__EXTENSIONS__)
465 extern void vhangup(void);
466 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
467 extern ssize_t write(int, const void *, size_t);
468 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
469 defined(__EXTENSIONS__)
470 extern void yield(void);
471 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
472
473 /* transitional large file interface versions */
474 #if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
475 !defined(__PRAGMA_REDEFINE_EXTNAME))
476 extern int ftruncate64(int, off64_t);
477 extern off64_t lseek64(int, off64_t, int);
478 extern ssize_t pread64(int, void *, size_t, off64_t);
479 extern ssize_t pwrite64(int, const void *, size_t, off64_t);
480 extern off64_t tell64(int);
481 extern int truncate64(const char *, off64_t);
482 extern int lockf64(int, int, off64_t);
483 #endif /* _LARGEFILE64_SOURCE */
484
485 #else /* __STDC__ */
486
487 extern int access();
488 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
489 defined(__EXTENSIONS__)
490 extern int acct();
491 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
492 extern unsigned alarm();
493 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
494 defined(_XPG4_2) || defined(__EXTENSIONS__)
495 extern int brk();
496 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
497 extern int chdir();
498 extern int chown();
499 #if (!defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)) || \
500 defined(__EXTENSIONS__)
501 extern int chroot();
502 #endif /* (!defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE))... */
503 extern int close();
504 #if (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)) || \
505 defined(__EXTENSIONS__)
506 extern size_t confstr();
507 extern char *crypt();
508 #endif /* (defined(XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4))... */
509 #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
510 defined(__EXTENSIONS__)
511 extern char *ctermid();
512 #endif /* (!defined(_POSIX_C_SOURCE) ... */
513 #ifdef _REENTRANT
514 extern char *ctermid_r();
515 #endif /* _REENTRANT */
516 extern char *cuserid();
517 extern int dup();
518 extern int dup2();
519 #if (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)) || \
520 defined(__EXTENSIONS__)
521 extern void encrypt();
522 #endif /* (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4))... */
523 extern int execl();
524 extern int execle();
525 extern int execlp();
526 extern int execv();
527 extern int execve();
528 extern int execvp();
529 extern void _exit();
530 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
531 defined(__EXTENSIONS__)
532 extern int fattach();
533 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
534 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
535 defined(_XPG4_2) || defined(__EXTENSIONS__)
536 extern int fchdir();
537 extern int fchown();
538 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) ... */
539 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
540 defined(__EXTENSIONS__)
541 extern int fchroot();
542 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
543 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) || \
544 (_POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
545 extern int fdatasync();
546 #endif /* (!defined(_POSIX_C_SOURCE) && ! defined(_XOPEN_SOURCE))... */
547 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)
548 extern int fdetach();
549 #endif /* !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) */
550 extern pid_t fork();
551 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
552 defined(__EXTENSIONS__)
553 extern pid_t fork1();
554 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
555 extern long fpathconf();
556 #if !defined(_POSIX_C_SOURCE) || (_POSIX_C_SOURCE > 2) || \
557 defined(__EXTENSIONS__)
558 extern int fsync();
559 #endif /* !defined(_POSIX_C_SOURCE) || (_POSIX_C_SOURCE > 2)... */
560 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
561 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64) || \
562 (_POSIX_C_SOURCE > 2) || defined(_XPG4_2) || defined(__EXTENSIONS__)
563 extern int ftruncate();
564 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
565 extern char *getcwd();
566 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
567 defined(_XPG4_2) || defined(__EXTENSIONS__)
568 extern int getdtablesize();
569 #endif
570 extern gid_t getegid();
571 extern uid_t geteuid();
572 extern gid_t getgid();
573 extern int getgroups();
574 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
575 defined(_XPG4_2) || defined(__EXTENSIONS__)
576 extern long gethostid();
577 #endif
578 extern char *getlogin();
579 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
580 defined(_XPG4_2) || defined(__EXTENSIONS__)
581 #if (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)) || \
582 defined(__EXTENSIONS__)
583 extern int getopt();
584 extern char *optarg;
585 extern int opterr, optind, optopt;
586 extern char *getpass();
587 #endif /* (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4))... */
588 extern int getpagesize();
589 extern pid_t getpgid();
590 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
591 extern pid_t getpid();
592 extern pid_t getppid();
593 extern pid_t getpgrp();
594 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
595 defined(__EXTENSIONS__)
596 char *gettxt();
597 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
598 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
599 defined(_XPG4_2) || defined(__EXTENSIONS__)
600 extern pid_t getsid();
601 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
602 extern uid_t getuid();
603 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
604 defined(_XPG4_2) || defined(__EXTENSIONS__)
605 extern char *getwd();
606 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
607 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
608 defined(__EXTENSIONS__)
609 extern int ioctl();
610 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
611 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
612 defined(__EXTENSIONS__)
613 extern int isaexec();
614 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
615 extern int isatty();
616 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
617 defined(_XPG4_2) || defined(__EXTENSIONS__)
618 extern int lchown();
619 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
620 extern int link();
621 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
622 defined(__EXTENSIONS__)
623 extern offset_t llseek();
624 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
625 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
626 defined(_XPG4_2) || defined(__EXTENSIONS__) || \
627 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64)
628 extern int lockf();
629 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
630 extern off_t lseek();
631 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
632 defined(__EXTENSIONS__)
633 extern int mincore();
634 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
635 #if (!defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)) || \
636 defined(__EXTENSIONS__)
637 extern int nice();
638 #endif /* (!defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE))... */
639 extern long pathconf();
640 extern int pause();
641 extern int pipe();
642 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
643 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64) || \
644 defined(_XPG5) || defined(__EXTENSIONS__)
645 extern ssize_t pread();
646 #endif
647 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
648 defined(__EXTENSIONS__)
649 extern void profil();
650 extern long ptrace();
651 #endif
652 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
653 (_POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
654 extern int pthread_atfork();
655 #endif
656 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
657 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64) || \
658 defined(_XPG5) || defined(__EXTENSIONS__)
659 extern ssize_t pwrite();
660 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
661 extern ssize_t read();
662 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
663 defined(_XPG4_2) || defined(__EXTENSIONS__)
664 extern int readlink();
665 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
666 #if (!defined(_POSIX_C_SOURCE) && (_XOPEN_VERSION - 0 < 4)) || \
667 defined(__EXTENSIONS__)
668 extern int rename();
669 #endif /* (!defined(_POSIX_C_SOURCE) && (_XOPEN_VERSION - 0 < 4))... */
670 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
671 defined(__EXTENSIONS__)
672 extern int resolvepath();
673 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
674 extern int rmdir();
675 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
676 defined(_XPG4_2) || defined(__EXTENSIONS__)
677 extern void *sbrk();
678 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
679 extern int setgid();
680 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
681 defined(__EXTENSIONS__)
682 extern int setegid();
683 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
684 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
685 defined(__EXTENSIONS__)
686 extern int setgroups();
687 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
688 extern int setpgid();
689 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
690 defined(_XPG4_2) || defined(__EXTENSIONS__)
691 extern pid_t setpgrp();
692 extern int setregid();
693 extern int setreuid();
694 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
695 extern pid_t setsid();
696 extern int setuid();
697 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
698 defined(__EXTENSIONS__)
699 extern int seteuid();
700 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
701 extern unsigned sleep();
702 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
703 defined(__EXTENSIONS__)
704 extern int stime();
705 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
706 #if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4)
707 /* __EXTENSIONS__ makes the SVID Third Edition prototype in stdlib.h visible */
708 extern void swab();
709 #endif /* defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) */
710 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
711 defined(_XPG4_2) || defined(__EXTENSIONS__)
712 extern int symlink();
713 extern void sync();
714 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
715 extern long sysconf();
716 #if defined(_XPG5)
717 #ifdef __PRAGMA_REDEFINE_EXTNAME
718 #pragma redefine_extname sysconf __sysconf_xpg5
719 #else /* __PRAGMA_REDEFINE_EXTNAME */
720 extern long __sysconf_xpg5();
721 #define sysconf __sysconf_xpg5
722 #endif /* __PRAGMA_REDEFINE_EXTNAME */
723 #endif /* defined(_XPG5) */
724 extern pid_t tcgetpgrp();
725 extern int tcsetpgrp();
726 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
727 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64) || \
728 defined(__EXTENSIONS__)
729 extern off_t tell();
730 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
731 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
732 (defined(_LARGEFILE_SOURCE) && _FILE_OFFSET_BITS == 64) || \
733 defined(_XPG4_2) || defined(__EXTENSIONS__)
734 extern int truncate();
735 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
736 extern char *ttyname();
737 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
738 defined(_XPG4_2) || defined(__EXTENSIONS__)
739 extern useconds_t ualarm();
740 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
741 extern int unlink();
742 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
743 defined(_XPG4_2) || defined(__EXTENSIONS__)
744 extern int usleep();
745 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
746 #if !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) || \
747 defined(_XPG4_2) || defined(__EXTENSIONS__)
748 extern pid_t vfork();
749 #endif /* !defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE) */
750 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
751 defined(__EXTENSIONS__)
752 extern void vhangup();
753 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) ... */
754 extern ssize_t write();
755 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
756 defined(__EXTENSIONS__)
757 extern void yield();
758 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
759
760 /* transitional large file interface versions */
761 #if defined(_LARGEFILE64_SOURCE) && !((_FILE_OFFSET_BITS == 64) && \
762 !defined(__PRAGMA_REDEFINE_EXTNAME))
763 extern int ftruncate64();
764 extern off64_t lseek64();
765 extern ssize_t pread64();
766 extern ssize_t pwrite64();
767 extern off64_t tell64();
768 extern int truncate64();
769 extern int lockf64();
770 #endif /* _LARGEFILE64_SOURCE */
771
772 #endif /* __STDC__ */
773
774 /*
775 * This atrocity is necessary on sparc because registers modified
776 * by the child get propagated back to the parent via the window
777 * save/restore mechanism.
778 */
779 #if (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE)) || \
780 defined(__EXTENSIONS__)
781 #if defined(__sparc)
782 #pragma unknown_control_flow(vfork)
783 #endif
784 #endif /* (!defined(_POSIX_C_SOURCE) && !defined(_XOPEN_SOURCE))... */
785
786 /*
787 * getlogin_r() & ttyname_r() prototypes are defined here.
788 */
789
790 /*
791 * Previous releases of Solaris, starting at 2.3, provided definitions of
792 * various functions as specified in POSIX.1c, Draft 6. For some of these
793 * functions, the final POSIX 1003.1c standard had a different number of
794 * arguments and return values.
795 *
796 * The following segment of this header provides support for the standard
797 * interfaces while supporting applications written under earlier
798 * releases. The application defines appropriate values of the feature
799 * test macros _POSIX_C_SOURCE and _POSIX_PTHREAD_SEMANTICS to indicate
800 * whether it was written to expect the Draft 6 or standard versions of
801 * these interfaces, before including this header. This header then
802 * provides a mapping from the source version of the interface to an
803 * appropriate binary interface. Such mappings permit an application
804 * to be built from libraries and objects which have mixed expectations
805 * of the definitions of these functions.
806 *
807 * For applications using the Draft 6 definitions, the binary symbol is
808 * the same as the source symbol, and no explicit mapping is needed. For
809 * the standard interface, the function func() is mapped to the binary
810 * symbol _posix_func(). The preferred mechanism for the remapping is a
811 * compiler #pragma. If the compiler does not provide such a #pragma, the
812 * header file defines a static function func() which calls the
813 * _posix_func() version; this is required if the application needs to
814 * take the address of func().
815 *
816 * NOTE: Support for the Draft 6 definitions is provided for compatibility
817 * only. New applications/libraries should use the standard definitions.
818 */
819
820 #if defined(__EXTENSIONS__) || defined(_REENTRANT) || \
821 (_POSIX_C_SOURCE - 0 >= 199506L) || defined(_POSIX_PTHREAD_SEMANTICS)
822
823 #if defined(__STDC__)
824
825 #if (_POSIX_C_SOURCE - 0 >= 199506L) || defined(_POSIX_PTHREAD_SEMANTICS)
826
827 #ifdef __PRAGMA_REDEFINE_EXTNAME
828 extern int getlogin_r(char *, int);
829 extern int ttyname_r(int, char *, size_t);
830 #pragma redefine_extname getlogin_r __posix_getlogin_r
831 #pragma redefine_extname ttyname_r __posix_ttyname_r
832 #else /* __PRAGMA_REDEFINE_EXTNAME */
833
834 static int
835 getlogin_r(char *__name, int __len)
836 {
837 extern int __posix_getlogin_r(char *, int);
838 return (__posix_getlogin_r(__name, __len));
839 }
840 static int
841 ttyname_r(int __fildes, char *__buf, size_t __size)
842 {
843 extern int __posix_ttyname_r(int, char *, size_t);
844 return (__posix_ttyname_r(__fildes, __buf, __size));
845 }
846 #endif /* __PRAGMA_REDEFINE_EXTNAME */
847
848 #else /* (_POSIX_C_SOURCE - 0 >= 199506L) || ... */
849
850 extern char *getlogin_r(char *, int);
851 extern char *ttyname_r(int, char *, int);
852
853 #endif /* (_POSIX_C_SOURCE - 0 >= 199506L) || ... */
854
855 #else /* __STDC__ */
856
857 #if (_POSIX_C_SOURCE - 0 >= 199506L) || defined(_POSIX_PTHREAD_SEMANTICS)
858
859 #ifdef __PRAGMA_REDEFINE_EXTNAME
860 extern int getlogin_r();
861 extern int ttyname_r();
862 #pragma redefine_extname getlogin_r __posix_getlogin_r
863 #pragma redefine_extname ttyname_r __posix_ttyname_r
864 #else /* __PRAGMA_REDEFINE_EXTNAME */
865
866 static int
867 getlogin_r(__name, __len)
868 char *__name;
869 int __len;
870 {
871 extern int __posix_getlogin_r();
872 return (__posix_getlogin_r(__name, __len));
873 }
874 static int
875 ttyname_r(__fildes, __buf, __size)
876 int __fildes;
877 char *__buf;
878 size_t __size;
879 {
880 extern int __posix_ttyname_r();
881 return (__posix_ttyname_r(__fildes, __buf, __size));
882 }
883 #endif /* __PRAGMA_REDEFINE_EXTNAME */
884
885 #else /* (_POSIX_C_SOURCE - 0 >= 199506L) || ... */
886
887 extern char *getlogin_r();
888 extern char *ttyname_r();
889
890 #endif /* (_POSIX_C_SOURCE - 0 >= 199506L) || ... */
891
892 #endif /* __STDC__ */
893
894 #endif /* defined(__EXTENSIONS__) || (__STDC__ == 0 ... */
895
896 #ifdef __cplusplus
897 }
898 #endif
899
900 #endif /* _UNISTD_H */