社区
C语言
帖子详情
unix下的c程序下怎么监听某进程
angel518
2009-05-05 08:47:38
偶要在unix下开发个c程序AA,该程序先启动,并使其在后台运行,然后在同一终端窗口下启动新的程序BB,其中有个功能:要求AA程序能监听BB程序,如果BB程序退出,AA程序自动结束,问题是C程序中怎么实现获取某终端(即当前TTY下)运行某程序的进程号啊
能给点代码吗
...全文
89
6
打赏
收藏
unix下的c程序下怎么监听某进程
偶要在unix下开发个c程序AA,该程序先启动,并使其在后台运行,然后在同一终端窗口下启动新的程序BB,其中有个功能:要求AA程序能监听BB程序,如果BB程序退出,AA程序自动结束,问题是C程序中怎么实现获取某终端(即当前TTY下)运行某程序的进程号啊 能给点代码吗
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tian428
2009-05-06
打赏
举报
回复
这里有一个父进程捕获 SIGCHLD 信号的例子
http://www.linuxforum.net/books/upfaq/c665.htm
angel518
2009-05-06
打赏
举报
回复
偶还没有UNIX下开发的经验,没用过这些FORK等,那位能给点比较详细的代码,谢谢了啊
yingkundu
2009-05-06
打赏
举报
回复
这就是你想要的:
#include<unistd.h>
2 #include<sys/types.h>
3 #include<sys/wait.h>
4 #include<stdio.h>
5 #include<stdlib.h>
6
7 int main(void)
8 {
9 pid_t child;
10 int status;
11 if((child=fork())==-1)
12 {
13 perror("fork");
14 exit(EXIT_FAILURE);
15 }
16 else if(child==0)
17 {
18 puts("in child");
19 printf("\tchild pid =%d\n",getpid());
20 printf("\tchild ppid =%d\n",getppid());
21 exit(EXIT_SUCCESS);
22 }
23 else
24 {
25 waitpid(child,&status,0);//等待pid为child的子进程;status会保存子进程结束状态值;
26 puts("in parent");
27 printf("\tparent pid =%d\n",getpid());
28 printf("\tparent ppid =%d\n",getppid());
29 printf("\tchild exited with %d\n",status);
30 }
31 exit(EXIT_SUCCESS);
32
33 }
34
35 /*
36 waitpid()会暂停目前进程的执行,直到有信号来到或子进程结束。如果在调用waitpid()时子进程已经结束,则waitpid()会立即返回子进程结束状态值。子进程的结束状态值
由status返回,而子进程的进程识别码也会一块返回。
37
38
39 */
40
41
42
43 /*
44 运行结果:
45 in child
46 child pid =8426
47 child ppid =8425
48 in parent
49 parent pid =8425
50 parent ppid =8193
37,0-1 Top
猫已经找不回了
2009-05-05
打赏
举报
回复
[Quote=引用楼主 angel518 的帖子:]
偶要在unix下开发个c程序AA,该程序先启动,并使其在后台运行,然后在同一终端窗口下启动新的程序BB,其中有个功能:要求AA程序能监听BB程序,如果BB程序退出,AA程序自动结束,问题是C程序中怎么实现获取某终端(即当前TTY下)运行某程序的进程号啊
能给点代码吗
[/Quote]
很多办法,如果你fork,那自然wait就可以了。
或者你可以向办法获取BB进程的pid,然后再通过各种进程通信的的方式,在退出的时候通知AA也可以。
liliangbao
2009-05-05
打赏
举报
回复
up
mymtom
2009-05-05
打赏
举报
回复
fork exec waitpid
UNIX
平台下C语言高级编程指南.rar
在
UNIX
平台上进行C语言的高级编程,涉及到许多关键概念和技术,这些内容在“
UNIX
平台下C语言高级编程指南”中可能会详细阐述。
UNIX
系统以其稳定性和强大的系统编程接口闻名,对于学习C语言的
程序
员来说,这是一个...
unix
平台下的c语言高级编程指南
在
Unix
下,还有一种称为“守护
进程
”的特殊
进程
,它们在后台运行,不与终端关联。通过`daemon()`函数可以实现这一功能。守护
进程
常用于服务
程序
,如Web服务器和数据库服务。 除此之外,
Unix
还提供了一系列的系统...
unix
平台下C语言高级编程指南
在
Unix
平台上进行C语言高级编程是一项技术性强且充满挑战的任务,因为
Unix
系统提供了丰富的系统调用接口和标准库,使得...阅读《
Unix
程序
开发》和《
unix
平台下C语言高级编程指南》将对深入理解和实践这些概念大有裨益。
linux/
unix
C语言开发的聊天
程序
源码
2. **
UNIX
/Linux系统编程**:由于
程序
运行在
UNIX
或Linux环境下,因此需要掌握系统调用如socket(用于网络通信)、fork(创建
进程
)、pthread(创建和管理线程)等。此外,文件I/O、信号处理、
进程
间通信(IPC)也是...
UNIX
平台下C语言高级编程指南
本指南旨在深入探讨如何在
UNIX
环境中利用C语言开发高效、稳定的
程序
,特别是涉及到GUI(图形用户界面)编程的部分。 首先,对于C语言,理解其基础是至关重要的。C语言是一种强大的、低级别的编程语言,它允许
程序
员...
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章