社区
C语言
帖子详情
unix下的c程序下怎么监听某进程
angel518
2009-05-05 08:47:38
偶要在unix下开发个c程序AA,该程序先启动,并使其在后台运行,然后在同一终端窗口下启动新的程序BB,其中有个功能:要求AA程序能监听BB程序,如果BB程序退出,AA程序自动结束,问题是C程序中怎么实现获取某终端(即当前TTY下)运行某程序的进程号啊
能给点代码吗
...全文
119
6
打赏
收藏
unix下的c程序下怎么监听某进程
偶要在unix下开发个c程序AA,该程序先启动,并使其在后台运行,然后在同一终端窗口下启动新的程序BB,其中有个功能:要求AA程序能监听BB程序,如果BB程序退出,AA程序自动结束,问题是C程序中怎么实现获取某终端(即当前TTY下)运行某程序的进程号啊 能给点代码吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
golang和c通过
unix
域实现双向通信
本文展示了一个使用Go和C语言实现的跨
进程
通信案例,通过
Unix
域套接字进行双向并行通信。Go
程序
监听
/tmp/gsocket,而C
程序
监听
/tmp/csocket,通过命令行输入实现数据交换。
[转]C语言写监控守护
进程
本文提供了一个使用C语言编写的
UNIX
守护
进程
示例
程序
。该
程序
通过
监听
指定端口接收客户端连接请求,并创建子
进程
来处理客户端的数据。此外,还介绍了如何在
UNIX
环境下创建守护
进程
并实现基本的错误处理。
php af
unix
,php与C语言经过AF_
UNIX
来进行IPC通信的例子
本文介绍了如何使用
UNIX
域套接字在PHP和C语言之间实现
进程
间通信(IPC)。首先展示了C语言服务端(s_
unix
.c)的实现,包括创建、绑定、
监听
和接收客户端连接。接着,给出了C语言客户端(c_
unix
.c)的代码,用于连接服务端并发送消息。最后,演示了PHP客户端(test.php)如何与C语言服务端通信。通过运行这三个
程序
,可以验证PHP与C语言之间的IPC通信功能。
linux
进程
通信 bzero函数,使用PF_
UNIX
进行通信的问题?
本文提供了一个使用 PF_
UNIX
实现
进程
间通信的示例代码,包括服务器端和服务客户端的 C 语言
程序
。该示例展示了如何创建 socket、绑定地址、
监听
连接请求及读取数据。
unix
域socket通信实例
本文提供了两个简单的
UNIX
Socket通信示例
程序
,包括服务器端(server.c)和客户端(client.c)的实现代码。通过这些示例,读者可以了解如何使用
UNIX
Socket进行
进程
间通信,包括创建Socket、绑定地址、
监听
连接请求、接受连接、发送和接收数据等关键步骤。
C语言
70,039
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章