Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 除了我调用';关闭';?_C_Linux_Sockets_Pipe - Fatal编程技术网

C 除了我调用';关闭';?

C 除了我调用';关闭';?,c,linux,sockets,pipe,C,Linux,Sockets,Pipe,除了我称之为“关闭”之外,linux什么时候关闭fd fd可以是套接字、管道、文件或任何其他内容 我知道它将在以下情况下关闭: 我直接或间接调用“close”函数(例如fclose(FILE*)) 程序被分叉(作为子程序),并且fd具有CLOEXEC标志 程序已崩溃或退出 有没有其他方法可以关闭fd? 非常感谢。为什么?这是您遇到的实际问题吗?我预计当您关闭计算机时,usb设备的热插拔也会导致此问题……;)案例2的公式错误:CLOEXEC在execve上工作,而不是在fork时间@hek2mgl

除了我称之为“关闭”之外,linux什么时候关闭fd

fd可以是套接字、管道、文件或任何其他内容

我知道它将在以下情况下关闭:

  • 我直接或间接调用“close”函数(例如fclose(FILE*))

  • 程序被分叉(作为子程序),并且fd具有CLOEXEC标志

  • 程序已崩溃或退出

  • 有没有其他方法可以关闭fd?
    非常感谢。

    为什么?这是您遇到的实际问题吗?我预计当您关闭计算机时,usb设备的热插拔也会导致此问题……;)案例2的公式错误:
    CLOEXEC
    execve
    上工作,而不是在
    fork
    时间@hek2mgl不,用锤子砸碎硬盘驱动器不会关闭与其相关的fd。