linux

xiaoxiao2021-02-27  330

/*文件控制选项头文件。主要定义了函数fcntl和open中用到的一下选项*/ #ifndef _FCNTL_H #define _FCNTL_H #include<sys/types.h>/*类型头文件,定义了基本的系统数据类型*/ #define O_ACCMODE 00003 //文件访问模式屏蔽码 #define O_RDONLY 00 //只读方式打开 #define O_WRONLY 01 //只写方式打开 #define O_RDWR 02 //以读写方式打开文件 #define O_CREAT 00100 //文件不存在,就创建 #define O_EXCL 00200 //独占使用文件标志 #define O_NOCTTY 00400 //不分配终端 #define O_TRUNC 01000 //若文件已存在且是写操作,则长度截为0 #define O_APPEND 02000 //追加方式打开,文件指针置为文件尾 #define O_NONBLOCK 04000 //非阻塞方式打开和操作文件 #define O_NDELAY O_NONBLOCK//非阻塞方式打开和操作文件 // #define F_DUPFD 0 //拷贝文件句柄为最小值且没有使用的句柄 #define F_GETFD 1 //取文件句柄标志 #define F_SETFD 2 //设置文件句柄标志 #define F_GETFL 3 //取文件状态标志和访问模式 #define F_SETFL 4 //设置文件状态标志和访问模式 #define F_GETLK 5 //返回阻止锁定的flock结构 #define F_SETLK 6 //设置(F_RDLCK或F_WRLCK)或清除锁定 #define F_SETLKW 7 //等待设置或清除锁定 //在执行exec簇函数时关闭文件句柄 #define FD_CLOEXEC 1 // // #define F_RDLCK 0 //共享或读文件锁定 #define F_WRLCK 1 //独占或写文件锁定 #define F_UNLCK 2 //文件解锁 //没有实现。文件锁定操作数据数据结构,描述受影响文件段的类型(l_type)开始偏移 //(l_whence),相对偏移(l_start),锁定长度(l_len)和实施锁定的进程id struct flock{ short l_type; //锁定类型(F_RDLCK,F_WRLCK,F_UNLCK) short l_whence; //开始偏移(SEEK_SET,SEEK_CUR,SEEK_END) off_t l_start; //阻塞锁定的开始处.相对偏移 off_t l_len; //阻塞锁定的大小,如果是0则为文件末尾 pid_t l_pid; //加锁的进程id }; /* *创建新文件或重写一个存在的文件 */ extern int creat(const char*filename,mode_t mode); /* *文件句柄操作,会影响文件的打开 */ extern int fcntl(int files,int cmd,...); //打开文件。在文件与文件句柄之间建立联系 extern int open(const char*filename,int flags,...); #endif
转载请注明原文地址: https://www.6miu.com/read-4312.html

最新回复(0)