`
deepfuture
  • 浏览: 4400719 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80078
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70058
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103363
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285833
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15015
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67579
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32155
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45993
社区版块
存档分类
最新评论

linux-C子进程退出信号

阅读更多

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>

void signal_hander()
{//处理子进程退出信号
  int child_status;
  wait(&child_status);  
  printf("child exited.\n");
}
int main(int argc,char **argv)
{//进程
  pid_t pid;
  int child_status;
  signal(SIGCHLD,signal_hander);
  if ((pid=fork())==0){
     printf("child process run!\n");
     exit(0);
  }else{
     printf("parent process run!\n");
     sleep(10); 
  }
  exit(0); 
}
 deepfuture-lx@deepfuture-lx-desktop:/media/LX/deepfuture$ gcc -o test10 test10.ctest10.c: In function ‘main’:

test10.c:20: warning: incompatible implicit declaration of built-in function ‘exit’

test10.c:26: warning: incompatible implicit declaration of built-in function ‘exit’

deepfuture-lx@deepfuture-lx-desktop:/media/LX/deepfuture$ ./test1

0parent process run!

child process run!

child exited.


0
0
分享到:
评论

相关推荐

    linux-c-api-ref.zip_linux api_linux-c-api-ref

    6. **线程管理**:Linux中的线程是轻量级进程,`pthread_create()`创建线程,`pthread_join()`等待线程结束,`pthread_exit()`退出线程,`pthread_cancel()`取消线程。`pthread_mutex_*()`和`pthread_rwlock_*()`等...

    Linux下C语言编程--信号处理函数.

    ### Linux下C语言编程——信号处理函数 #### 一、信号的基本概念与产生 在Linux系统中,**信号**是一种轻量级的进程间通信机制,用于通知接收进程某个特定事件的发生。它不仅可以由硬件异常(如除零错误)触发,也...

    linux-进程和线程

    - **等待子进程退出(回收子进程)** - `wait()`函数:等待任意子进程结束并回收其资源,返回子进程的PID。 - `waitpid()`函数:更灵活,可以指定等待特定的子进程或一组子进程结束。 3. **线程** - 线程是进程中...

    Linux下C语言编程——信号处理

    - `SIGQUIT`:退出信号,由用户按下`Ctrl+\`产生。 - `SIGILL`:非法指令信号,指示进程尝试执行非法指令。 - `SIGSEGV`:段错误信号,通常表示访问内存时出现问题。 - `SIGALRM`:定时器信号,由`alarm`函数设定的...

    linux-c编程linux-c编程

    ### Linux-C编程重要知识点概述 ...以上总结了Linux-C编程的关键知识点,包括基础的编译、调试技巧,到高级的进程管理、网络编程等内容,涵盖了从初学者到高级开发者的广泛需求。希望对学习Linux-C编程有所帮助。

    linux waitpid检测子进程是否退出

    当子进程退出时,父进程可以通过`waitpid()`获取子进程的退出状态,并可以根据需要决定是否再次调用`fork()`启动新的子进程。这种模式常用于实现进程循环,比如守护进程需要持续地创建和重启执行特定任务的子进程。 ...

    检测子进程退出的方法

    当子进程退出时,操作系统可能会向父进程发送一个SIGCHLD信号,通知它子进程的状态发生了变化。但默认情况下,收到SIGCHLD信号并不会自动导致父进程做任何处理,需要父进程自己捕获并处理这个信号。 **waitpid函数*...

    linux-sig.rar_linux sig 10

    信号有多种类型,如SIGINT(中断信号,通常由Ctrl+C触发),SIGTERM(终止信号,温和地请求进程结束),SIGKILL(杀死信号,强制无条件终止进程),SIGSEGV(段错误,表示进程试图访问无效内存地址),SIGALRM(闹钟...

    c语言linux版本杀死指定名称的进程

    在Linux操作系统中,使用C语言编写程序来杀死指定名称的进程是一项常见的任务,这涉及到对系统调用和进程管理的理解。下面将详细讲解这个过程涉及的知识点。 首先,我们需要了解Linux中的进程标识符(PID)。每个...

    Linux进程退出之方法论_1.docx

    本文主要讨论了Linux进程退出的两种基本方式:正常退出和异常退出,并深入解析了不同退出方法之间的区别。 1. 正常退出: - 在`main()`函数中执行`return`:这是程序正常完成其任务并返回一个退出状态码的方式。 ...

    20. Linux开发-Linux下进程编程.pdf

    反之,父进程退出时,子进程会成为孤儿进程,被系统init进程接管。 总的来说,Linux下的进程编程涉及到进程的概念、创建、管理和信号处理等多个方面,掌握这些知识对于进行系统级编程和理解操作系统的工作原理至关...

    实验二-Linux进程、线程及编程.doc

    在 Linux 中,进程的管理和同步是通过系统调用和信号机制来实现的。wait() 函数和 waitpid() 函数可以用于父进程等待子进程的退出,而 exit() 函数和 _exit() 函数可以用于进程的退出。在进程同步中,信号机制可以...

    linux-centos7.6代码,c语言

    9. **信号处理**:C语言中的`signal`函数允许程序响应特定的系统事件,如中断(SIGINT)、退出(SIGTERM)等。 10. **内存管理**:C语言提供了`malloc`、`calloc`、`realloc`和`free`等函数进行动态内存分配和释放...

    linux环境高级编程3-unix进程环境、进程控制和进程关系.ppt

    在Linux环境中进行高级编程,了解进程环境、进程控制和进程关系是至关重要的。这些概念构成了操作系统的核心部分,允许程序在多任务系统中并发执行。以下是对这些主题的详细阐述: **进程状态转换图** 进程的状态...

    linux-deamon-programming.zip_linux deamon

    1. **脱离控制终端**:通过调用`fork()`函数创建子进程,使父进程退出,这样子进程就不再关联任何终端。 2. **改变工作目录**:将工作目录更改为根目录`/`,防止占用某个用户的家目录。 3. **关闭标准输入、输出和...

    linux c 进程监管 模仿supervisor

    在实现过程中,我们需要注意错误处理和资源释放,例如,当进程退出时,必须正确地解除共享内存的连接,以防止内存泄漏。另外,为了保证系统的稳定性,需要考虑并发访问和同步问题,可以使用互斥锁(mutex)或者信号...

    Linux进程间通信--使用信号

    常见的信号包括SIGINT(中断,通常由Ctrl+C产生)、SIGHUP(挂断)、SIGQUIT(退出请求)、SIGKILL(强制杀死进程)和SIGTERM(请求终止进程)等。更多信号类型可以查阅相关文档或头文件。 处理信号的函数主要有两...

    linux-c下面自己编写的shell

    6. **信号处理**:Shell需要处理各种信号,如`SIGINT`(Ctrl+C)用于中断当前命令,`SIGHUP`(挂断信号)用于退出Shell。通过`signal()`或`sigaction()`函数可以注册信号处理器。 7. **循环执行**:Shell是一个循环...

Global site tag (gtag.js) - Google Analytics