1 #ifndef __UNISTD_H 2 #define __UNISTD_H 3 #ifndef _POSIX_SOURCE 4 This header file is not defined in pure ANSI 5 #endif 6 #pragma lib "/$M/lib/ape/libap.a" 7 8 #define _POSIX_VERSION 199309L 9 #define _POSIX_ASYNC_IO -1 10 #define _POSIX_CHOWN_RESTRICTED 1 11 #define _POSIX_NO_TRUNC 1 12 #define _POSIX_PRIO_IO -1 13 #define _POSIX_SYNC_IO -1 14 #define _POSIX_VDISABLE -1 15 16 #ifndef _SIZE_T 17 #define _SIZE_T 18 typedef unsigned long size_t; 19 #endif 20 #ifndef _SSIZE_T 21 #define _SSIZE_T 22 typedef long ssize_t; 23 #endif 24 #ifndef NULL 25 #ifndef NULL 26 #ifdef __cplusplus 27 #define NULL 0 28 #else 29 #define NULL ((void*)0) 30 #endif 31 #endif 32 #endif 33 34 /* access */ 35 #define R_OK 4 36 #define W_OK 2 37 #define X_OK 1 38 #define F_OK 0 /* test for existence */ 39 40 /* lockf */ 41 #define F_ULOCK 0 /* unlock a previously locked region */ 42 #define F_LOCK 1 /* lock a region for exclusive use */ 43 #define F_TLOCK 2 /* test and lock a region for exclusive use */ 44 #define F_TEST 3 /* test a region for a previous lock */ 45 46 /* lseek */ 47 #ifndef SEEK_SET /* also defined in stdio.h */ 48 #define SEEK_SET 0 49 #define SEEK_CUR 1 50 #define SEEK_END 2 51 #endif 52 53 /* sysconf argument */ 54 #define _SC_ARG_MAX 1 /* max chars in args to exec */ 55 #define _SC_CHILD_MAX 2 /* max child process per process */ 56 #define _SC_CLK_TCK 3 /* number of clock() units per second */ 57 #define _SC_NGROUPS_MAX 4 /* max supplementary groups per process */ 58 #define _SC_OPEN_MAX 5 59 #define _SC_STREAM_MAX 6 60 #define _SC_TZNAME_MAX 7 61 #define _SC_JOB_CONTROL 8 /* posix job control */ 62 #define _SC_SAVED_IDS 9 /* saved suid/sgid per process */ 63 #define _SC_VERSION 10 /* this version */ 64 65 /* pathconf argument */ 66 #define _PC_LINK_MAX 1 67 #define _PC_MAX_CANON 2 68 #define _PC_MAX_INPUT 3 69 #define _PC_NAME_MAX 4 70 #define _PC_PATH_MAX 5 71 #define _PC_PIPE_BUF 6 72 #define _PC_CHOWN_RESTRICTED 7 73 #define _PC_NO_TRUNC 8 74 #define _PC_VDISABLE 9 75 76 /* standard filenos */ 77 #define STDIN_FILENO 0 78 #define STDOUT_FILENO 1 79 #define STDERR_FILENO 2 80 81 #ifdef __cplusplus 82 extern "C" { 83 #endif 84 85 /* process primitives */ 86 extern int execl(const char *, const char *, ...); 87 extern int execv(const char *, const char **); 88 extern int execle(const char *, const char *, const char *, ...); 89 extern int execve(const char *, const char **, const char **); 90 extern int execlp(const char *, const char *, ...); 91 extern int execvp(const char *, const char **); 92 extern void _exit(int); 93 extern unsigned int alarm(unsigned int); 94 extern int pause(void); 95 extern unsigned int sleep(unsigned int); 96 #ifdef __TYPES_H 97 extern pid_t fork(void); 98 #endif 99 100 /* process environment */ 101 extern char *getlogin(void); 102 extern char *cuserid(char *); 103 extern char *ttyname(int); 104 extern int isatty(int); 105 extern long sysconf(int); 106 #ifdef __TYPES_H 107 extern pid_t getpid(void); 108 extern pid_t getppid(void); 109 extern uid_t getuid(void); 110 extern uid_t geteuid(void); 111 extern gid_t getgid(void); 112 extern gid_t getegid(void); 113 extern int setuid(uid_t); 114 extern int setgid(gid_t); 115 extern int getgroups(int, gid_t *); 116 extern pid_t getpgrp(void); 117 extern int setpgid(pid_t, pid_t); 118 extern pid_t setsid(void); 119 #endif 120 121 /* files and directories */ 122 extern int chdir(const char *); 123 extern int link(const char *, const char *); 124 extern char *getcwd(char *, size_t); 125 extern int unlink(const char *); 126 extern int rmdir(const char *); 127 extern int rename(const char *, const char *); 128 extern int access(const char *, int); 129 extern long pathconf(const char *, int); 130 extern long fpathconf(int, int); 131 #ifdef __TYPES_H 132 extern int chown(const char *, uid_t, gid_t); 133 #endif 134 135 /* input and output primitives */ 136 extern int pipe(int *); 137 extern int dup(int); 138 extern int dup2(int, int); 139 extern int close(int); 140 extern ssize_t read(int, void *, size_t); 141 extern ssize_t write(int, const void *, size_t); 142 #ifdef __TYPES_H 143 extern int ftruncate(int, off_t); 144 extern off_t lseek(int, off_t, int); 145 #endif 146 147 /* device- and class-specific functions */ 148 #ifdef __TYPES_H 149 extern pid_t tcgetpgrp(int); 150 extern int tcsetpgrp(int, pid_t); 151 #endif 152 153 #ifdef _REENTRANT_SOURCE 154 extern char *getlogin_r(char *, int); 155 #endif 156 157 /* berkeley specific functions */ 158 #ifdef _BSD_EXTENSION 159 #include <bsd.h> 160 #endif 161 162 #ifdef __cplusplus 163 } 164 #endif 165 166 167 #endif 168