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来输入文件结束符