c文件

 

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>

pid_t pid;
int counter = 1;

void handler(int sig)
{
	counter -= 1;
	printf("%d", counter);
	fflush(stdout);
	exit(0);
}

int main()
{
	signal(SIGUSR1, handler);

	printf("%d", counter);
	fflush(stdout);

	if (0 == (pid = fork())) {
		while (1)
			;
	}

	kill(pid, SIGUSR1);

	waitpid(-1, NULL, 0);
	counter += 1;
	printf("%d\n", counter);
	exit(0);
}


可是当存为cc文件编译时。报错提示waitpid未声明。加入

 

#include <sys/types.h>
#include <sys/wait.h>


编译通过。不知道为什么。