代码之家  ›  专栏  ›  技术社区  ›  Badis Merabet

如何知道我们是否使用fcntl和F_GETOWN获得错误或组ID?

  •  1
  • Badis Merabet  · 技术社区  · 7 年前

    下面是使用 fcntl 要操作文件描述符,请执行以下操作:

    val = fcntl(fd, F_GETOWN, 0)

    在文档中提到,此命令返回一个正进程ID或一个负进程组ID。

    还提到了 -1 表示发生了错误。

    1 回复  |  直到 7 年前
        1
  •  3
  •   user149341 user149341    7 年前

    -1是一个错误。其他负值是进程组ID。引用 the Single UNIX specification 对于此功能(我的重点):

    F_GETOWN

    费尔德斯 指套接字,获取指定的进程ID或进程组ID,以便在带外数据可用时接收信号。正值应表示过程ID;负值, 费尔德斯 未引用套接字,结果未指定。

    请记住,进程组ID为-1无论如何都没有多大意义。这意味着pid1(即, init