当前位置: 首页 > news >正文

淘宝网站建设成本住房和城乡建设统计网站

淘宝网站建设成本,住房和城乡建设统计网站,c2c网站代表和网址,wordpress门户主题当子进程退出后,会给父进程发送一个17号SIGCHLD信号,父进程接收到17号信号后,进入信号处理函数调用waitpid函数回收僵尸进程若多个子进程同时退出后,这是切回到父进程,此时父进程只会处理一个17号信号,其他…
  1. 当子进程退出后,会给父进程发送一个17号SIGCHLD信号,父进程接收到17号信号后,进入信号处理函数调用waitpid函数回收僵尸进程
  2. 若多个子进程同时退出后,这是切回到父进程,此时父进程只会处理一个17号信号,其他17号信号会被屏蔽。所以17号信号处理函数中只调用一次waitpid函数,可能会造成僵尸进程回收不干净的问题。
  3. 如果成功回收到僵尸进程了,则再收一次,直到没有僵尸进程为止,结束循环

                =0:没有僵尸进程,但是有活着的子进程,函数运行成功

                =-1:没有僵尸进程,且没有子进程,函数运行失败。

17) SIGCHLD 当子进程退出后,父进程会收到该信号。该信号不会让进程退出。

想要简单的回收子进程,直接在父进程的某处wait(0)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <dirent.h>
#include <errno.h>
#include <pthread.h>
#include <semaphore.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/wait.h>
void callback(int sig){printf("触发 %d 信号\n",sig);pid_t wpid =wait(0);printf("wpid=%d\n",wpid);
}
int main(int argc, const char *argv[])
{//捕获17号信号if(signal(SIGCHLD,callback)==SIG_ERR){perror("signal");return -1;}printf("17号信息捕获成功\n");int i=0;while(i<20){if(fork()==0)//子进程{exit(0);//退出}i++;//只有父进程会执行i++}while(1) //不让父进程退出,不然僵尸进程会消失sleep(1);return 0;
}

 

很明显没有捕获到20个僵尸进程

改进:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <dirent.h>
#include <errno.h>
#include <pthread.h>
#include <semaphore.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <sys/wait.h>
int count=0;
void callback(int sig){
//	printf("触发 %d 信号\n",sig);
while(1){//当回收成功后,再收一次,直到回收失败//=-1,没有僵尸进程,也没有子进程//=0,没有僵尸进程,但是有子进程pid_t wpid =wait(0);if(wpid<=0)break;printf("%d  wpid=%d\n",++count,wpid);
}
}
int main(int argc, const char *argv[])
{//捕获17号信号if(signal(SIGCHLD,callback)==SIG_ERR){perror("signal");return -1;}printf("17号信息捕获成功\n");int i=0;while(i<20){if(fork()==0)//子进程{exit(0);//退出}i++;//只有父进程会执行i++}while(1)sleep(1);return 0;
}

http://www.yayakq.cn/news/163409/

相关文章:

  • 合肥建设网站的公司360建筑网网址
  • 代写1000字多少钱自己的网站怎么做seo
  • 沧州网站建设哪家专业电子商务网站建设报告怎么写
  • 珠海网站开发定制网站开发算法
  • 手机网站建设好吗网站页面的宽度
  • 注册网站后如何注销账号无锡网站制作公司报价
  • 曲靖网站建设注册网站需要多少钱?
  • 网站建设网页与数据库连接腾讯邮箱登录入口
  • 网站开发的人怎么样网站制作 符合百度
  • 个人做外贸网站违法吗免费咨询健康
  • 做类似美团的网站自己做的网站如何发布
  • 秦皇岛北戴河太原seo推广外包
  • 企业门户网站系统有了域名怎么建网站
  • 个人网站要不要备案下载国际新闻app软件
  • 网站建设黄页免费观看seo是什么职位
  • wordpress网站微信登录wordpress后台英文转中文
  • 江门网站设计模板怎样设计一个移动网站
  • 德阳网站建设推广求个没封的w站2021软件
  • 手机站电影开源企业网站源码
  • 南昌营销网站建设功能点计算方法 网站开发
  • 专业的销售网站湖南网站建设360o
  • 潞电建设公司官网wordpress性能优化工具吗
  • 潍坊网站制作建设网站宽度设计
  • 重庆网站制作特点优势建设网站虚拟主机
  • 公司做个网站好还是做公众号好建设有限公司
  • 淇县网站建设最好网页设计培训
  • 网站做404页面怎么做湖南健康卡app
  • 容桂网站制作价位视频背景音乐怎么做mp3下载网站
  • 渝中网站建设如何进行电子商务网站建设规划
  • 枸杞网站的建设方案永久免费做网站