fcntlcom.h

来自「基于4个mips核的noc设计」· C头文件 代码 · 共 142 行

H
142
字号
/* sys/fcntlcom.h *//* * Copyright (c) 1983 Regents of the University of California. * All rights reserved.  The Berkeley software License Agreement * specifies the terms and conditions for redistribution. */#ifndef	__SYS_FCNTLCOM_H__#define	__SYS_FCNTLCOM_H__#if	defined(__cplusplus)extern	"C"	{#endif	/* defined(__cplusplus) *//* * Rewack the FXXXXX values as _FXXXX so that _POSIX_SOURCE works. */#define	_FOPEN		(-1)	/* from sys/file.h, kernel use only */#define	_FREAD		0x0001	/* read enabled */#define	_FWRITE		0x0002	/* write enabled */#define	_FNDELAY	0x0004	/* non blocking I/O (4.2 style) */#define	_FAPPEND	0x0008	/* append (writes guaranteed at the end) */#define	_FMARK		0x0010	/* internal; mark during gc() */#define	_FDEFER		0x0020	/* internal; defer for next gc pass */#define	_FASYNC		0x0040	/* signal pgrp when data ready */#define	_FSHLOCK	0x0080	/* BSD flock() shared lock present */#define	_FEXLOCK	0x0100	/* BSD flock() exclusive lock present */#define	_FCREAT		0x0200	/* open with file create */#define	_FTRUNC		0x0400	/* open with truncation */#define	_FEXCL		0x0800	/* error on open if file exists */#define	_FNBIO		0x1000	/* non blocking I/O (sys5 style) */#define	_FSYNC		0x2000	/* do all writes synchronously */#define	_FNONBLOCK	0x4000	/* non blocking I/O (POSIX style) */#define	_FNOCTTY	0x8000	/* don't assign a ctty on this open */#define	_FBINARY	0x10000	/* open file for binary data */#define	O_ACCMODE	(O_RDONLY|O_WRONLY|O_RDWR)/* * Flag values for open(2) and fcntl(2) * The kernel adds 1 to the open modes to turn it into some * combination of FREAD and FWRITE. */#define	O_RDONLY	0		/* +1 == FREAD */#define	O_WRONLY	1		/* +1 == FWRITE */#define	O_RDWR		2		/* +1 == FREAD|FWRITE */#define	O_APPEND	_FAPPEND#define	O_CREAT		_FCREAT#define	O_TRUNC		_FTRUNC#define	O_EXCL		_FEXCL/*	O_SYNC		_FSYNC		not posix, defined below *//*	O_NDELAY	_FNDELAY 	set in include/fcntl.h *//*	O_NDELAY	_FNBIO 		set in 5include/fcntl.h */#define	O_NONBLOCK	_FNONBLOCK#define	O_NOCTTY	_FNOCTTY#define	O_BINARY	_FBINARY#if	!defined(_POSIX_SOURCE)#define	O_SYNC		_FSYNC/* * Flags that work for fcntl(fd, F_SETFL, FXXXX) */#define	FAPPEND		_FAPPEND#define	FSYNC		_FSYNC#define	FASYNC		_FASYNC#define	FNBIO		_FNBIO#define	FNONBIO		_FNONBLOCK	/* XXX fix to be NONBLOCK everywhere */#define	FNDELAY		_FNDELAY/* * Flags that are disallowed for fcntl's (FCNTLCANT); * used for opens, internal state, or locking. */#define	FREAD		_FREAD#define	FWRITE		_FWRITE#define	FMARK		_FMARK#define	FDEFER		_FDEFER#define	FSHLOCK		_FSHLOCK#define	FEXLOCK		_FEXLOCK/* * The rest of the flags, used only for opens */#define	FOPEN		_FOPEN#define	FCREAT		_FCREAT#define	FTRUNC		_FTRUNC#define	FEXCL		_FEXCL#define	FNOCTTY		_FNOCTTY#endif	/* !defined(_POSIX_SOURCE) *//* XXX close on exec request; must match UF_EXCLOSE in user.h */#define	FD_CLOEXEC	1	/* posix *//* fcntl(2) requests */#define	F_DUPFD		0	/* Duplicate fildes */#define	F_GETFD		1	/* Get fildes flags (close on exec) */#define	F_SETFD		2	/* Set fildes flags (close on exec) */#define	F_GETFL		3	/* Get file flags */#define	F_SETFL		4	/* Set file flags */#if	!defined(_POSIX_SOURCE)#define	F_GETOWN 	5	/* Get owner - for ASYNC */#define	F_SETOWN 	6	/* Set owner - for ASYNC */#endif	/* !defined(_POSIX_SOURCE) */#define	F_GETLK  	7	/* Get record-locking information */#define	F_SETLK  	8	/* Set or Clear a record-lock (Non-Blocking) */#define	F_SETLKW 	9	/* Set or Clear a record-lock (Blocking) */#if	!defined(_POSIX_SOURCE)#define	F_RGETLK 	10	/* Test a remote lock to see if it is blocked */#define	F_RSETLK 	11	/* Set or unlock a remote lock */#define	F_CNVT 		12	/* Convert a fhandle to an open fd */#define	F_RSETLKW 	13	/* Set or Clear remote record-lock(Blocking) */#define	F_BINARY 	14	/* Set binary mode (for stdin/stdout) */#endif	/* !defined(_POSIX_SOURCE) *//* fcntl(2) flags (l_type field of flock structure) */#define	F_RDLCK		1	/* read lock */#define	F_WRLCK		2	/* write lock */#define	F_UNLCK		3	/* remove lock(s) */#if	!defined(_POSIX_SOURCE)#define	F_UNLKSYS	4	/* remove remote locks for a given system */#endif	/* !defined(_POSIX_SOURCE) *//* The open() system call. */extern	int	_open(const char *path, int oflag, ...);#if	!defined(__STRICT_ANSI__) || defined(_POSIX_SOURCE)extern	int	open(const char *path, int oflag, ...);#endif	/* !defined(__STRICT_ANSI__) || defined(_POSIX_SOURCE) */#if	defined(__cplusplus)}#endif	/* defined(__cplusplus) */#endif	/* !__SYS_FCNTLCOM_H__ *//* sys/fcntlcom.h */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?