child.c

来自「UNIX环境中利用信号完成进程间的通信」· C语言 代码 · 共 40 行

C
40
字号
#include	<sys/types.h>#include	<signal.h>#include	<stdio.h>static void	sig_cld();intmain(){	pid_t	pid;	if (signal(SIGCLD, sig_cld) == -1)		perror("signal error");	if ( (pid = fork()) < 0)		perror("fork error");	else if (pid == 0) {		/* child */		sleep(2);		_exit(0);	}	pause();	/* parent */	exit(0);}static voidsig_cld(){	pid_t	pid;	int		status;	printf("SIGCLD received\n");	if (signal(SIGCLD, sig_cld) == -1)	/* reestablish handler */		perror("signal error");	if ( (pid = wait(&status)) < 0)		/* fetch child status */		perror("wait error");	printf("pid = %d\n", pid);	return;		/* interrupts pause() */}

⌨️ 快捷键说明

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