【发布时间】:2026-02-03 17:00:01
【问题描述】:
我正在参加一场比赛,在这场比赛中,我需要杀死与我的程序在同一目录中运行的进程。编程语言无关紧要,它可以是在 linux 上运行的任何语言,我选择 C 是因为它是我最了解的语言(如果你有其他语言可以做到这一点,我会很高兴听到)。
我知道我可以使用 kill 函数杀死进程,但我不知道如何获取目录中进程的 id 并杀死他。 另外我的程序需要保护自己,不要被杀。
我怎样才能以最好的方式做这样的事情?
【问题讨论】:
-
您对“在同一目录中”运行的进程到底是什么意思?您的意思是要遍历您的程序所在的目录并杀死该目录中可以找到的所有正在运行的程序实例吗?你需要更具体。
-
我的意思是所有程序都位于 tmp 目录中,包括我的程序,我需要像上面解释的那样从它们中杀死它们。
-
您的问题没有说明您所指的进程和目录之间的关系 - 请改进它。 用于创建/启动进程的二进制文件驻留在目录中。这就是“与我在同一目录中运行的进程”的意思吗?其他可能的关系是进程 pid 文件,它通常位于
/proc内的子目录中,或者可能是程序用作 chroot 环境的目录。