Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45217
  • 博文数量: 5
  • 博客积分: 35
  • 博客等级: 民兵
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-16 17:40
文章分类

全部博文(5)

文章存档

2017年(1)

2016年(1)

2015年(2)

2013年(1)

我的朋友

分类: C/C++

2015-06-27 09:17:21

输入和输出
文件描述符

    他呢通常是一个小的非负整数,内核用它标识一个特定进程正在访问文件;一般内核打开或者创建新文件的时候,就返回一个文件描述符给进程,进程读写文件就可以用它。

标准输入、标准输出和标准出错
    在程序运行之初的时候,shell就为进程打开默认的三个文件描述符:标准输入(standard input)、标准输出(standard output)以及标准出错(standard error)。如果执行程序时没有使用任何输入输出(比如:“>”、“<”、“|”等)那这三个文件描述符都是连接到终端的,也就是说会输出到终端、等待终端输入、返回错误给终端输出。

不带缓冲的I/O
    函数open、read、write、lseek以及close提供了不用缓冲的I/O。这些函数都是用文件描述符。
    下面的代码是书里提供的,其实就是简单的cat命令:


    使用gcc -c mycat.c -o mycat.o;gcc mycat.o apue.o -o mycat编译源码,运行结果:
    
标准I/O
    函数printf、fprintf、sprintf和标准C库中的文件操作函数都属于带缓冲标准I/O,具体区别不带缓冲和带缓冲I/O函数的区别,书里后面提到了,到时再说,也可以百度一下。
   
    gcc -c mycat1.c -o mycat1.o;gcc mycat1.o apue.o -o mycat1编译源码,运行结果:


上篇忘了把代码传上来了,在这补上
apue2e_src.rar
阅读(2137) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~