[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
...全文
267 6 打赏 收藏 转发到动态 举报
写回复
用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。
第一章UNIX操作系统概述 1983年AT&T发布UNIX System V,系统功能已经趋于稳定和完善,现在最后版本为System V Release 4 代表性UNIX版本: 1.System V Release 4 (SVRV) 小型机上、大型机上使用。 2.加州大学伯克利分校的BSD(Berkeley)版本,主要用于工程设计和科学计算;主要在小型 机上、大型机上使用。 3.Microsoft和SCO公司开发的SCO XENIX SCO UNIX和OpenServer等,主要应用在基于 Intel x86体系结构的系统上。 4.开放源代码的Linux,UNIX的体系结构加MS Windows形式的图形用户界面,主要应用 在基于Intel x86体系结构的系统上。 Unix系统特征: 1.可移植性强--Unix操作系统大量代码为C语言编写,C语言具有跨平台的特性。 2.多用户、多任务的分时操作系统--人机间实时交互数据;多个用户可同时使用一台主机; 每个用户可同时执行多个任务。 3.软件复用--每个程序模块完成单一的功能;程序模块可按需任意组合;较高的系统和应 用开发效率。 4.与设备独立的输入/输出操作--打印机、终端视为文件;输入/输出操作与设备独立。 5.界面方便高效--内部:系统调用丰富高效;外部:shell 命令灵活方便可编程;应用: GUI清晰直观功能强大。 6.安全机制完善--口令、权限、加密等措施完善;抗病毒结构、误操作的局限和自动恢复 功能。 7.多国语言支持--支持全世界现有的几十种主要语言。 8.网络和资源共享--内部:多进程结构易于资源共享;外部:支持多种网络协议。 9.系统工具和系统服务--100 多个系统工具(即命令),完成各种功能;系统服务用于系统 管理和维护。 Unix操作系统的组成:

69,336

社区成员

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

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