1 #ifndef __FCNTL_H 2 #define __FCNTL_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 O_RDONLY 0 9 #define O_WRONLY 1 10 #define O_RDWR 2 11 #define O_ACCMODE 0x003 12 #define O_NONBLOCK 0x004 13 #define O_APPEND 0x008 14 #define O_CREAT 0x100 15 #define O_TRUNC 0x200 16 #define O_EXCL 0x400 17 #define O_NOCTTY 0x800 18 19 #define F_DUPFD 0 /* Duplicate fildes */ 20 #define F_GETFD 1 /* Get fildes flags */ 21 #define F_SETFD 2 /* Set fildes flags */ 22 #define F_GETFL 3 /* Get file flags */ 23 #define F_SETFL 4 /* Set file flags */ 24 #define F_GETLK 5 /* Get file lock */ 25 #define F_SETLK 6 /* Set file lock */ 26 #define F_SETLKW 7 /* Set file lock and wait */ 27 28 #define FD_CLOEXEC 1 29 30 struct flock { 31 short l_type; 32 short l_whence; 33 off_t l_start; 34 off_t l_len; 35 pid_t l_pid; 36 }; 37 38 #define F_RDLCK 1 /* shared or read lock */ 39 #define F_UNLCK 2 /* unlock */ 40 #define F_WRLCK 3 /* exclusive or write lock */ 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 extern int fcntl(int, int, ...); 47 extern int open(const char *, int, ...); 48 extern int creat(const char *, mode_t); 49 50 #ifdef __cplusplus 51 } 52 #endif 53 54 #endif 55