1 #include<unistd.h> 2 #define SIZE 100 3 4 int main(void) 5 { 6 int n; 7 char buf[SIZE]; 8 9 while(n=read(STDIN_FILENO,buf,SIZE)) 10 { 11 if(n!=write(STDOUT_FILENO,buf,n)) 12 perror("write error"); 13 } 14 15 if(n<0) perror("read error"); 16 17 return 0; 18 }
如果按照常规的使用方法:
fan@fan:~/arm$ gcc -o app stdout.c
fan@fan:~/arm$ ./app
fdfe
fdfe
fefefef
fefefef
//输入一行,马上输出一行,也就是按照原样输出
===========================================================================
使用重定向来运行
fan@fan:~/arm$ ./app> data
fefe
fdadfdf
adfdfef
//输入的字符串并不是输出到终端,而是输出到data文件中。
==========================================================================
fan@fan:~/arm$ ./app <stdout.c >data
fan@fan:~/arm$
//这一句相当于把stdout.c复制到data中去
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
STDOUT_FILENO和STDIN_FILENO在默认的情况下是终端,
使用ctrl+D来输入文件结束符