sigchld.c

来自「unix环境高级编程一书源代码 本书全面介绍了UNIX系统的程序设计界面—系统」· C语言 代码 · 共 26 行

C
26
字号
#include	"calld.h"#include	<sys/wait.h>/* SIGCHLD handler, invoked when a child terminates. */voidsig_chld(int signo){	int		stat, errno_save;	pid_t	pid;	errno_save = errno;		/* log_msg() might change errno */	chld_flag = 1;	if ( (pid = waitpid(-1, &stat, 0)) <= 0)		log_sys("waitpid error");	if (WIFEXITED(stat) != 0)					/* set client's childdone status for loop() */		client_sigchld(pid, WEXITSTATUS(stat)+1);	else		log_msg("child %d terminated abnormally: %04x", pid, stat);	errno = errno_save;	return;		/* probably interrupts accept() in serv_accept() */}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?