windows-nt/Source/XPSP1/NT/public/sdk/inc/posix/fcntl.h
2020-09-26 16:20:57 +08:00

84 lines
1.4 KiB
C

/*++
Copyright (c) 1989-1996 Microsoft Corporation
Module Name:
fcntl.h
Abstract:
This module contains the required contents of fcntl
--*/
#ifndef _FCNTL_
#define _FCNTL_
#include <sys/types.h>
#ifdef __cplusplus
extern "C" {
#endif
#define O_RDONLY 0x00000000
#define O_WRONLY 0x00000001
#define O_RDWR 0x00000002
#define O_ACCMODE 0x00000007
#define O_APPEND 0x00000008
#define O_CREAT 0x00000100
#define O_TRUNC 0x00000200
#define O_EXCL 0x00000400
#define O_NOCTTY 0x00000800
#define O_NONBLOCK 0x00001000
/*
* Control operations on files, 1003.1-88 (6.5.2.2). Use as 'command'
* argument to fcntl().
*/
#define F_DUPFD 0
#define F_GETFD 1
#define F_GETLK 2
#define F_SETFD 3
#define F_GETFL 4
#define F_SETFL 5
#define F_SETLK 6
#define F_SETLKW 7
/*
* File descriptor flags, 1003.1-90 (6-2). Used as argument to F_SETFD
* command.
*/
#define FD_CLOEXEC 0x1
struct flock {
short l_type; /* F_RDLCK, F_WRLCK, or F_UNLCK */
short l_whence; /* flag for starting offset */
off_t l_start; /* relative offset in bytes */
off_t l_len; /* size; if 0 then until EOF */
pid_t l_pid; /* pid of process holding the lock */
};
/*
* Values for the l_type field.
*/
#define F_RDLCK 1
#define F_UNLCK 2
#define F_WRLCK 3
int __cdecl open(const char *, int,...);
int __cdecl creat(const char *, mode_t);
int __cdecl fcntl(int, int, ...);
#ifdef __cplusplus
}
#endif
#endif /* _FCNTL_ */