printf 与stdout行缓冲问题求解
int main(int argc, const char *argv[])
{
printf("dd>");
while(1);
return 0;
}
如上代码由于有输出缓冲的问题一直不会有输出。
int main(int argc, const char *argv[])
{
printf("dd>");
getchar();
while(1);
return 0;
}
加一个输入就会输出了,用fgetc,fgets也会使dd>输出。为会stdin的函数会影响stdout?
下面用没有缓冲的函数dd>就不输出了,这又是为什么啊?
linux@ubuntu:~/myPractice/network/server$ cat -n hh.c
1 #include <stdio.h>
2 #include <unistd.h>
3
4 int main(int argc, const char *argv[])
5 {
6 char buff[10];
7
8 printf("dd>");
9 read(STDIN_FILENO,buff,1);
10 write(STDOUT_FILENO,buff,1);
11 //fgets(buff, 10, stdin);
12 //fgetc(stdin);
13 while(1);
14 return 0;
15 }
linux@ubuntu:~/myPractice/network/server$ gcc hh.c
linux@ubuntu:~/myPractice/network/server$ ./a.out
jklkkk
j