父进程如何能得到其下子进程的PID?

leeruixp 2005-01-01 10:26:52
父进程下面有若干子进程。现在需要父进程用kill给这些子进程发消息,那么子进程的PID如何得到?
...全文
226 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xfzhao_cn 2005-01-04
  • 打赏
  • 举报
回复
fork 返回值就是子进程的id.
jikes 2005-01-04
  • 打赏
  • 举报
回复

#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <error.h>
#include <sys/types.h>
#include <sys/wait.h>
#include "ourhdr.h"
int
main(void)
{

char buf[MAXLINE];
pid_t pid;
int status;
printf("%% ");
while (fgets(buf,MAXLINE,stdin) != NULL){
buf[strlen(buf)-1]=0;
if(( pid=fork())<0 )
err_sys("fork error");
else if( pid==0){
execlp(buf,buf, (char *) 0);
err_ret("could't execute : %s",buf);
exit(127);
}
if(( pid==waitpid(pid, &status, 0)) < 0 )
err_sys("waitpid error");
printf("%% ");
}
exit(0);
}

wjphit 2005-01-03
  • 打赏
  • 举报
回复
pid_t pid;
pid = fork();
if ( pid > 0 )
{
//保存pid ,这个就是字进程id
}
else if(pid<0){
//fork error
}

else
{
//在子进程中
}
lijiangshui 2005-01-02
  • 打赏
  • 举报
回复
同意
NC 2005-01-01
  • 打赏
  • 举报
回复
pid_t pid;
if ( ( pid = fork() ) == 0 )
{
child process ...
}
else{
parent process...
printf ( "child process id =%d" , pid );
}
quil 2005-01-01
  • 打赏
  • 举报
回复
用fork创建子进程的时候不就得到了吗
loveisbug 2005-01-01
  • 打赏
  • 举报
回复
同意楼上两位

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧