xref: /plan9/sys/include/ape/fcntl.h (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
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