/*这是我在做csapp 8.2题时遇到的奇怪现象*/
#include <stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include <stdlib.h>
int main()
{
int son_pid;
int x = 1;
if((son_pid = fork()) == 0)
printf("printf1: x=%d\n", ++x);
printf("printf2: x=%d\n", --x);
printf("son_pid: %d\n",son_pid);
printf("getchar: %c\n" ,(int)getchar());
exit(0);
}
我预期我要输入两个字符,但是我只输入了一个系统就退出了,在退出之后在命令行里我输入的字符又被这个程序的getchar函数读走了。不知道怎么回事,这段代码里有我不了解的东西,值得探究,先把这段代码放在这里,以后再研究。