您可以使用命令lsof来获取所有正在运行的进程的文件描述符,但我想要做的是关闭其中一些描述符,而不是在该进程内部.这可以在Windows上完成,因此您可以轻松取消阻止某些应用程序.
那有什么命令或功能吗?
我不知道你为什么要这样做,但你应该能够使用gdb附加到进程,然后在fd上调用close().例:
在一个壳:猫
在另一个shell中:
$pidof cat 7213 $gdb -p 7213 ... lots of output ... (gdb)
现在告诉gdb执行close(0):
(gdb) p close(0) $1 = 0 (gdb) c Continuing. Program exited with code 01. (gdb)
在第一个shell中我得到了这个输出:
cat: -: Bad file descriptor cat: closing standard input: Bad file descriptor