预备知识:
1、每个进程启动时 都会打开三个文件描述符 标准输入、标准输出、标准错误。默认的标准输入是键盘、标准输出和标准错误是屏幕。(上一次我们已经说过UNIX中设备也是文件)
2、在用命令行启动进程时,可以将这三个文件描述符重定向。具体方法见:http://www.php100.com/html/webkaifa/Linux/2010/0430/6470.html
3、使用到的系统调用:
ssize_t read(int fd, void *buf, size_t count); // 从文件fd 读取count大小 到buf开头的内存里面
ssize_t write(int fd, const void *buf, size_t count); // 从buf开头的内存 读取count大写 到文件fd中
int iCount;
char sBuf[BUFERSIZE];
while((iCount=read(STDIN_FILENO, sBuf, BUFERSIZE))>0)
if(write(STDOUT_FILENO, sBuf, iCount)!=iCount)
{
printf("write eror\n");
exit(1);
}
if(iCount<0)
printf("read error\n");
###从键盘输入,输出到屏幕
[/home/maomao/Study/UNIX_C/chap_1]./a.out
asdasdasdasd
asdasdasdasd
###从键盘输入,输出到文件
[/home/maomao/Study/UNIX_C/chap_1]./a.out >Makefile1
sadsadsad
asdsadsadasdsa
asd
asdasd
[/home/maomao/Study/UNIX_C/chap_1]cat Makefile1
sadsadsad
asdsadsadasdsa
asd
asdasd
###从文件输入,输出到屏幕
[/home/maomao/Study/UNIX_C/chap_1]./a.out <Makefile1
sadsadsad
asdsadsadasdsa
asd
asdasd
###从文件输入,输出到文件
[/home/maomao/Study/UNIX_C/chap_1]./a.out <Makefile >Makefile1
[/home/maomao/Study/UNIX_C/chap_1]cat Makefile1
include ../Makefile.incl
objects=main.o
include ../Makefile.incl.tail