| #ifndef _FCNTL_H |
| #define _FCNTL_H |
| |
| #include <sys/types.h> |
| |
| /* open/fcntl - NOCTTY, NDELAY isn't implemented yet */ |
| #define O_ACCMODE 00003 |
| #define O_RDONLY 00 |
| #define O_WRONLY 01 |
| #define O_RDWR 02 |
| #define O_CREAT 00100 /* not fcntl */ |
| #define O_EXCL 00200 /* not fcntl */ |
| #define O_NOCTTY 00400 /* not fcntl */ |
| #define O_TRUNC 01000 /* not fcntl */ |
| #define O_APPEND 02000 |
| #define O_NONBLOCK 04000 /* not fcntl */ |
| #define O_NDELAY O_NONBLOCK |
| |
| /* Defines for fcntl-commands. Note that currently |
| * locking isn't supported, and other things aren't really |
| * tested. |
| */ |
| #define F_DUPFD 0 /* dup */ |
| #define F_GETFD 1 /* get f_flags */ |
| #define F_SETFD 2 /* set f_flags */ |
| #define F_GETFL 3 /* more flags (cloexec) */ |
| #define F_SETFL 4 |
| #define F_GETLK 5 /* not implemented */ |
| #define F_SETLK 6 |
| #define F_SETLKW 7 |
| |
| /* for F_[GET|SET]FL */ |
| #define FD_CLOEXEC 1 /* actually anything with low bit set goes */ |
| |
| /* Ok, these are locking features, and aren't implemented at any |
| * level. POSIX wants them. |
| */ |
| #define F_RDLCK 0 |
| #define F_WRLCK 1 |
| #define F_UNLCK 2 |
| |
| /* Once again - not implemented, but ... */ |
| struct flock { |
| short l_type; |
| short l_whence; |
| off_t l_start; |
| off_t l_len; |
| pid_t l_pid; |
| }; |
| |
| extern int creat(const char * filename,mode_t mode); |
| extern int fcntl(int fildes,int cmd, ...); |
| extern int open(const char * filename, int flags, ...); |
| |
| #endif |