56 lines
1.4 KiB
C
56 lines
1.4 KiB
C
#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
|