Linux文件租赁-fcntl F_SETLEASE当文件已以冲突方式打开时
如果我试图在一个文件上设置(比如)F_RDLCK租约,而该文件已经在其他地方打开进行写入,会发生什么 说 读取租约只能放在打开的文件描述符上 只读 这是否意味着它应该是开放的只读系统,否则调用可能会失败?如果是这样,除了使用(IN_CLOSE_WRITE)之外,还有其他方法等待租约生效吗?此呼叫:Linux文件租赁-fcntl F_SETLEASE当文件已以冲突方式打开时,linux,Linux,如果我试图在一个文件上设置(比如)F_RDLCK租约,而该文件已经在其他地方打开进行写入,会发生什么 说 读取租约只能放在打开的文件描述符上 只读 这是否意味着它应该是开放的只读系统,否则调用可能会失败?如果是这样,除了使用(IN_CLOSE_WRITE)之外,还有其他方法等待租约生效吗?此呼叫: fcntl(fd, F_SETLEASE, F_RDLCK) 如果基础文件当前已在任何进程中打开以供写入,则将使用EAGAIN(“资源暂时不可用”)失败 对应于手册页的说明: EACCES或EAGA
fcntl(fd, F_SETLEASE, F_RDLCK)
如果基础文件当前已在任何进程中打开以供写入,则将使用EAGAIN
(“资源暂时不可用”)失败
对应于手册页的说明:
EACCES或EAGAIN
其他进程持有的锁禁止操作
如果调用方本身打开fd
进行写入(即不使用O_RDONLY
标志),这只是此规则的一个特例,fcntl()
还返回EAGAIN