C语言I/O学习笔记(1)stdin,stdout和stderr以及重定向

C程序自动打开3个文件,标准输入,标准输出和标准错误输出。默认情况下分别指向键盘,显示器,显示器。

这里的文件指的是指向FILE的指针。FILE是stdio.h中定义的一种派生类型。FILE类型指针,指向一个关于文件信息的数据包,其中包括文件I/O使用的缓冲区的信息。

stdin,stdout,stderr都是FILE*类型的对象,它们都是常量。分别指向键盘,显示器,显示器。也就是c程序启动时操作系统流环境负责打开的3个文件(标准输入,标准输出和标准错误输出)。

Unix,Linux,DOS可以重定向输入和输出。通俗来说,输入重定向让我们可以使用文件代替键盘作为输入,输出重定向可以让我们用文件代替显示器作为输出。

文件编译之后,有一个执行文件xxx.exe(DOS下),现在有一个text.txt文件,通过命令:xxxx < text 把xxxx的输入定向到text文件,也就是从text文件中读取数据作为xxxx的输入。

< 符号是Unix,Linux,DOS的重定向运算符,该运算符把stdin流和text文件关联起来,将该文件的内容导入xxxx程序,xxxx程序只负责从流中提取数据,而不关心数据是从何而来。

(注:Unix,Linux,DOS下<两侧的空格是可选的)

与输入重定向类似,< 可进行输出重定向。

输出重定向可和输入重定向同时使用,重定向运算符的顺序无关紧要。比如另有文件text1.txt, 命令:xxxx < text >text1

 

总结,重定向遵循的规则如下:

1.重定向运算符讲一个可执行程序与一个数据文件连接起来。它不能连接两个可执行程序,也不能连接两个文件。

2.使用重定向运算符时,输入只能定向到一个文件,即输入不能来自一个以上的文件。输出同理。

3.不要把一个程序的输入和输出定向到一个文件,如 xxxx < text >text,>text 使原始的text文件在用于输入之前被截断为零。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值