将标准输入复制到标准输出
2015-06-14 10:46
330 查看
将标准输入复制到标准输出
<span style="font-size:14px;">#include<stdio.h> #include<stdlib.h> #include<unistd.h> #define BUFFSIZE 4096 int main(void) { int n; char buf[BUFFSIZE]; while((n = read(STDIN_FILENO,buf,BUFFSIZE))>0) { if(write(STDOUT_FILENO,buf,n) != n) { printf("write error\n"); exit(1); } } if (n < 0) { printf("readerror\n"); exit(1); } exit(0); }</span>
1. 头文件<unistd.h> 以及两个常量STDIN_FILENO 和 STDOUT_FILENO是POSIX标准的一部分。该头文件包含了很多UNIX系统服务的函数原型,例如read和write
2. 常量STDIN_FILENO 和 STDOUT_FILENO指定了标准输入和标准输出的文件描述符。
3. read函数返回读得的字节数,当到达文件的尾端时,read返回0,程序停止执行。如果发生了一个读错误,read返回-1。
4. ./a.out > data 标准输入是终端,标准输出则重定向至文件data
5 ./a.out < infile > outfile 那么名为infile文件文件的内容复制到名为outfile的文件中
<span style="font-size:14px;">#include<stdio.h> #include<stdlib.h> int main(void) { int c; while((c = getc(stdin)) != EOF) { if(putc(c,stdout) == EOF) { printf("output error\n"); exit(1); } } if(ferror(stdin)) { printf("inpit error\n"); exit(1); } exit(1); }</span>
和上面的程序的功能一样。函数getc一次读取一个字符,然后函数putc将此字符写到标准输出。读到输入的最后一个字节时,getc返回常量EOF。
相关文章推荐
- 买哪种牌子的笔记本电脑好呢?
- %*d, %*s等在输入输出语句中的作用
- 计算机网络--物理层 的一点总结
- 06Exchange Server 2010跨站点部署-Mailbox网卡配置
- Struts2 重点总结 (2)
- spring <context:component-scan>使用说明(转)
- Boosting算法简介
- IOS的Crash情况在Crashlytics平台上统计解决方案的一点遗憾(截止到2015年6月14日)
- PB中datawindow常用技巧
- addTarget:action:forControlEvents
- Java链接 Oracle11g R2
- Swift之旅:1.概述-用Swift实现一个简单的计算器
- 人人都懂的编程课(Python)
- Node.js学习--基础知识(3)--回调函数与事件
- Android进行单元测试难在哪-part4
- 人人都懂的编程课(Python)
- [Swust OJ 1091]--土豪我们做朋友吧(并查集,最值维护)
- Opencv调用GPU模块
- Javascript join example by separator
- 持续集成CI