【问题标题】:kill(in c) VS getpid VS statkill(in c) VS getpid VS stat
【发布时间】:2020-08-03 15:47:17
【问题描述】:

我想知道我的计算机上是否存在进程。 有三种方法可以通过 C 中的代码进行测试: 杀, 获取PID(PID) ,stat (路径, & stat)

我想知道每种方法的优缺点是什么?

【问题讨论】:

  • 你的统计是指检查/proc/<pid>吗?
  • 嗯...getpid() 不带参数
  • 这能回答你的问题吗? Check if process exists given its pid
  • getpid() 函数告诉你当前进程的PID。你知道当前进程存在——如果不存在,它就无法执行getpid()(或任何其他函数)。

标签: c


【解决方案1】:

kill(pid, 0) 符合 POSIX,而stat("/proc/<pid>", ...) 不符合。

我不知道getpid() 是什么意思,因为它不带任何参数。


更新

getpgid(pid) 也符合 POSIX,所以我认为使用 killgetpgid 没有区别。我会选择kill,因为它使用更广泛。

【讨论】:

  • ok.. 但是 getpid()
  • getpid() 返回当前进程的进程ID。它不检查是否有任何其他进程正在运行。
  • getpgid 这就是我的意思
  • @NetanelShimoni 感谢您的澄清,我已经更新了我的答案。
猜你喜欢
  • 1970-01-01
  • 2014-06-10
  • 2011-03-22
  • 2011-11-13
  • 1970-01-01
  • 2023-03-17
  • 2016-09-14
  • 2017-11-06
  • 2020-07-31
相关资源
最近更新 更多