什么是fcntl()中的第三个arg

时间:2016-01-06 03:52:21

标签: c++ c

我不确定fcntl()中的第三个arg,我知道当第二个arg发生变化时它会有所不同,并且当第二个arg变为{{1时但是当第二个arg是F_GETLK等时,第三个arg应该是什么?

从APUE开始,当第二个arg为F_GETFL时,它为0

非常感谢:)

1 个答案:

答案 0 :(得分:1)

  

fcntl()可以采用可选的第三个参数。是否这个          参数是必需的由cmd决定。必需的参数          每个cmd名称后的括号中都会显示类型(在大多数情况下,          必需的类型是int,我们使用名称标识参数          arg),如果不需要参数,则指定void。

     

F_SETLK,F_SETLKW和F_GETLK用于获取,释放和测试          对于记录锁的存在(也称为字节范围,文件 -          段或文件区域锁)。第三个参数lock是一个          指向至少包含以下字段的结构的指针(in          未指定的顺序)。

     

与传统的咨询锁一样,fcntl()的第三个参数,          lock,是指向flock结构的指针。与之形成对比          传统的记录锁,该结构的l_pid字段必须是          使用下述命令时设置为零。

此链接可以帮助您解决问题 http://man7.org/linux/man-pages/man2/fcntl.2.html