[UNIX C学习笔记] 输入/输出【标准输入--->>标准输出】

MaoMao 2012-12-01 11:54:34
预备知识:


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
...全文
281 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
MaoMao 2012-12-03
  • 打赏
  • 举报
回复
(⊙o⊙)哦,原来帖子都是用来提问题的啊~ 啊呀,这样下去很快就没分了呀~ 额~ 以后还是只发博文吧。。。。
兆帅 2012-12-02
  • 打赏
  • 举报
回复
prajna 2012-12-02
  • 打赏
  • 举报
回复
同學
子善旬 2012-12-02
  • 打赏
  • 举报
回复
顶个啊
AnYidan 2012-12-02
  • 打赏
  • 举报
回复
wjain 2012-12-02
  • 打赏
  • 举报
回复
此帖何意?我没看明白。 貌似每一步都很正常的吧。 是来分享来了? 我先占个SF。

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧