当前位置:  开发笔记 > 编程语言 > 正文

如何从unix系统中的另一个进程关闭文件描述符

如何解决《如何从unix系统中的另一个进程关闭文件描述符》经验,为你挑选了1个好方法。

您可以使用命令lsof来获取所有正在运行的进程的文件描述符,但我想要做的是关闭其中一些描述符,而不是在该进程内部.这可以在Windows上完成,因此您可以轻松取消阻止某些应用程序.

那有什么命令或功能吗?



1> 小智..:

我不知道你为什么要这样做,但你应该能够使用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


迟到总比没有好,但是当Eclipse决定在最糟糕的时刻耗尽fd时,这个技巧非常有效.干杯:)
推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有