• 2024-01-11c笔记
    1 signal(SIGCHLD,SIG_DFL);ret=system(buf);signal(SIGCHLD,SIG_IGN);默认情况下,父进程会接收到这个信号并调用wait()来回收子进程的资源。但如果父进程不希望等待子进程结束,它可以选择忽略SIGCHLD信号。这样,子进程将成为“僵尸进程”,但不会占用系统资源,因为内核会在子进
  • 2023-06-03如何避免僵尸进程(转)
    父进程中调用wait()等待回收子进程两次fork()来避免僵尸进程   在父进程fork()之前安装SIGCHLD信号处理函数,并在此handler函数中调用waitpid()等待子进程结束在父进程中加入一条语句:signal(SIGCHLD,SIG_IGN);表示父进程忽略SIGCHLD信号杀死父进程,这样子进程就由init进程
  • 2023-05-21【Linux】信号 —— 信号的产生 | 信号的保存 | 信号的处理 | volalite关键字 | SIGCHLD
    信号1.信号的产生-信号发送前1.1键盘产生1.2异常1.3系统调用1.4软件条件1.5理解发送信号2.信号的保存-信号发送中2.1相关概念&内核结构2.2sigset_t及一系列系统调用函数3.信号的处理-信号发送后3.1内核如何实现信号捕捉3.2sigaction4.可重入函数5.volalite
  • 2023-05-17Linux多进程19-SIGCHLD 信号
    SIGCHLD信号产生的条件子进程终止时子进程接收到SIGSTOP信号停止时子进程处在停止态,接受到SIGCONT后唤醒时以上三种条件都会给父进程发送SIGCHLD信号,父进程默认会忽略该信号父进程捕捉到SIGCHLD信号时调用wait,waitpid回收子进程资源,解决僵尸进程问题sigchld.c/*
  • 2022-12-12[ Linux ] 可重入函数,volatile 关键字,SIGCHLD信号
    1.可重入函数在数据结构初阶时我们学习过链表,其中当然也学习过链表头插。在此我们复习一下链表头插,我们使用画图来演示。newnode->next=head->next;head->next=newnode;
  • 2022-11-26进程间的信号处理
    进程状态Linux系统下进程通常存在6种不同的状态,分为:就绪态、运行态、僵尸态、可中断睡眠状态(浅度睡眠)、不可中断睡眠状态(深度睡眠)以及暂停态。就绪态(Ready):指该进程满足被