子进程在复制父进程的信号处理方式
2014-02-11 22:06
351 查看
当一个进程调用f o r k时,其子进程继承父进程的信号处理方式。因为子进程在开始时复制
了父进程存储图像,所以信号捕捉函数的地址在子进程中是有意义的;
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <iostream>
using namespace std;
void sig_handle(int signo){
cout << "---------------------------"<< endl;
cout << getpid() << ":" <<signo;
}
int main(int args,char *argc[]){
signal(SIGUSR1,sig_handle);
pid_t pid;
pid=fork();
if(pid==0){
cout << "son self pid:"<< getpid()<< endl;
pause();
cout << "continue" << endl;
}else{
cout << "son process:"<< pid << endl;
cout << "father process:" << getpid()<<endl;
kill(pid,SIGUSR1);
while(true){
;
}
}
}
打印----------------------------------
了父进程存储图像,所以信号捕捉函数的地址在子进程中是有意义的;
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <iostream>
using namespace std;
void sig_handle(int signo){
cout << "---------------------------"<< endl;
cout << getpid() << ":" <<signo;
}
int main(int args,char *argc[]){
signal(SIGUSR1,sig_handle);
pid_t pid;
pid=fork();
if(pid==0){
cout << "son self pid:"<< getpid()<< endl;
pause();
cout << "continue" << endl;
}else{
cout << "son process:"<< pid << endl;
cout << "father process:" << getpid()<<endl;
kill(pid,SIGUSR1);
while(true){
;
}
}
}
打印----------------------------------
相关文章推荐
- fork - 子进程在复制父进程的信号处理方式
- 子进程在复制父进程的信号处理方式
- 子进程会继承父进程用户id,用户组id,用户信息,文件描述符,数据段,堆栈,当前工作目录,创建文件权限,信号处理方式,进程组号,会话期号。
- 进程线程中睡眠函数(sleep)被信号中断后失效,处理方式总结
- 调用信号处理程序被捕捉的信号自动地加到进程的当前信号屏蔽字中signal() sigpending()
- linux信号处理、killall、SIGALRM、sigaction函数和结构体、向进程发送信号
- Linux信号处理和守护进程
- signal(设置信号处理方式)
- 36-多进程并发服务器(僵尸进程与信号处理)
- Linux 进程间通讯之信号方式
- Linux进程间的通信方式:信号
- 每个线程都有自己的信号屏蔽字,但是信号的处理时进程中所有线程共享的http://bbs.csdn.net/topics/350222437
- SIGHUP信号的默认处理是终止收到该信号的进程
- PHP扩展pcntl(进程控制以及信号处理)中文文档
- PHP扩展pcntl(进程控制以及信号处理)中文文档
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - Linux常见信号及处理 分类: Linux --- 应用程序设计 2014-11-08 11:54 68人阅读 评论(0) 收藏
- [转] linux下的僵尸进程处理SIGCHLD信号
- Linux子进程的异步等待方式(SIGCHLD信号)
- linux进程通信----信号的处理
- 设置信号处理方式