|
|
1.1 root 1: #ifndef _FCNTL_H
2: #define _FCNTL_H
3:
4: #include <sys/types.h>
5:
6: /* open/fcntl - NOCTTY, NDELAY isn't implemented yet */
7: #define O_ACCMODE 00003
8: #define O_RDONLY 00
9: #define O_WRONLY 01
10: #define O_RDWR 02
11: #define O_CREAT 00100 /* not fcntl */
12: #define O_EXCL 00200 /* not fcntl */
13: #define O_NOCTTY 00400 /* not fcntl */
14: #define O_TRUNC 01000 /* not fcntl */
15: #define O_APPEND 02000
16: #define O_NONBLOCK 04000 /* not fcntl */
17: #define O_NDELAY O_NONBLOCK
18:
19: /* Defines for fcntl-commands. Note that currently
20: * locking isn't supported, and other things aren't really
21: * tested.
22: */
23: #define F_DUPFD 0 /* dup */
24: #define F_GETFD 1 /* get f_flags */
25: #define F_SETFD 2 /* set f_flags */
26: #define F_GETFL 3 /* more flags (cloexec) */
27: #define F_SETFL 4
28: #define F_GETLK 5 /* not implemented */
29: #define F_SETLK 6
30: #define F_SETLKW 7
1.1.1.2 ! root 31: #define F_GETLK64 12
! 32: #define F_SETLK64 13
! 33: #define F_SETLKW64 14
1.1 root 34:
35: /* for F_[GET|SET]FL */
36: #define FD_CLOEXEC 1 /* actually anything with low bit set goes */
37:
38: /* Ok, these are locking features, and aren't implemented at any
39: * level. POSIX wants them.
40: */
41: #define F_RDLCK 0
42: #define F_WRLCK 1
43: #define F_UNLCK 2
44:
45: /* Once again - not implemented, but ... */
46: struct flock {
47: short l_type;
48: short l_whence;
49: off_t l_start;
50: off_t l_len;
51: pid_t l_pid;
52: };
53:
54: extern int creat(const char * filename,mode_t mode);
55: extern int fcntl(int fildes,int cmd, ...);
56: extern int open(const char * filename, int flags, ...);
57:
58: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.