学习linux进程编程的时候,发现一个奇怪的问题:好像程序没有执行就退出了——因为写的一些printf()语句没有显示,还好突然想到了fflush(FILE *p)。
fflush(FILE *p)是把FILE*p指向的流的输出立即写入并清空,所以加上fflush(stdout)就是立即显示到屏幕上。
代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
void main()
{
char str[20];
pid_t pid=getpid();
printf("my id is :%d",pid);
fflush(stdout);
sprintf(str,"kill %d",pid);
system(str);
}
这个程序若没有fflush就不会看到pid的输出。所以,当你觉得程序莫名其妙的时候一定要加上啊!