+ -
当前位置:首页 → 问答吧 → 怎么取得进程ID

怎么取得进程ID

时间:2010-09-18

来源:互联网

  1. pid_t pr1;
  2.         while(1)
  3.         {      /* 使用了WNOHANG参数,waitpid不会在这里等待 */
  4.                 pr1 = waitpid(getpid(), NULL,0);

  5.                 if (pr1==getpid())
  6.                 {
  7.                         printf("这个程序可能崩溃,需要做些处理 %d\n", pr1);
  8.                         return 0;
  9.                 }
  10.                 sleep(1);//没有
  11.         }
复制代码
我要检测程序是否崩溃了,我用getpid()取出进程的pid可以吗?我看其他程序都是pid=fork();这样处理的,但我只想监控主进程,子进程我不去监控他。

作者: jd808   发布时间: 2010-09-18

都崩溃了,你的代码怎么还会运行呢

作者: hellioncu   发布时间: 2010-09-19

你若监视某个进程,肯定是这个进程的父进程或者可以其他方式通信,父进程想得到PID很简单,你fork的时候就可以获得。如果是通过别的方式通信,那么你可以让监视对象把它的pid传给你。
有什么困难的地方么 ?

作者: davelv   发布时间: 2010-09-19

检测程序是否崩溃 应该安插信号处理函数
getpid()当然可以取得当前进程标识 这个函数就是干这个的

作者: lenky0401   发布时间: 2010-09-19