码迷,mamicode.com
首页 > 编程语言 > 详细

C语言之流的重定向

时间:2014-06-03 13:16:19      阅读:410      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

写c的小程序断不了需要输入输出,手动输入可太麻烦了。下面介绍IO的重定向方式:

bubuko.com,布布扣
1.重定向标准输入输出和错误,直接在命令行使用符号< > 2> >> 2>>等,还可使用2>&1将标准错误重定向到标准输出(两个大于号表示追加)
如下面执行main程序:
main < data.txt >answer.csv 2> error.log

2.在程序代码中使用freopen(文件路径,打开模式,stdin/stdout/stderr)进行重定向,配合使用main函数的参数来传递文件名(路径)。

3.使用dup2(fileno1,fileno2)
每用fopen()打开一个文件,操作系统都会在描述符表中新注册一项,产生一个文件描述符(类型为FILE*)fp,fileno(fp)函数返回描述符的编号(0~255)。
一般情况下0,1,2是固定的分配给标准输入、输出、错误,之后的号码按使用时顺序分配,如数据库连接,网络连接的流。
dup2(4,3)表示将4号数据流复制(覆盖)到3号
形如dup2(fd[1],1)将标准输出设为管道的写入端
dup2(fileno(fp),1),重定向标准输出到文件(这里的文件可以指普通文件,也可以理解为LINUX中的一切设备皆文件的概念)
在linux上还可以打开/dev/tty,将数据直接发送到终端
bubuko.com,布布扣

你还可以写个脚本来执行你的程序,免去了不断的输入来进行测试。

C语言之流的重定向,布布扣,bubuko.com

C语言之流的重定向

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/makefile/p/3759849.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!