在多进程对同一个文件进行读写访问时,为了保证数据的完整性,有事需要对文件进行锁定。可以通过fcntl()函数对文件进行锁定和解锁。
1. fcntl
1.1.功能描述:根据文件描述词来操作文件的特性。
1.2.用法:
int fcntl(int fd, int cmd);
int fcntl(int fd, int cmd, long arg);
int fcntl(int fd, int cmd, struct flock *lock);
fd:文件描述词。
cmd:操作命令。
arg:供命令使用的参数,是否需要arg参数跟cmd命令有关。
lock:锁信息。
2.读写锁实例
新建两个文件,源码如下2.1、2.2所示。
2.1.给文件加读锁
#include
#include
#include
#include
#include
int main(int argc, const char * argv [ ])
{
int fd = open("test.c", O_RDONLY);
if (fd == -1)
{
perror("open fa