1 / 24
文档名称:

第1章 低级IO.ppt

格式:ppt   大小:263KB   页数:24页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第1章 低级IO.ppt

上传人:xunlai783 2018/1/8 文件大小:263 KB

下载得到文件列表

第1章 低级IO.ppt

相关文档

文档介绍

文档介绍:低级IO
第一章
内容







基本概念
低级输入输出操作函数均对文件描述字进行操作, 它们中有些与标准IO函数对应,是实现标准IO函数的初等函数,有些是执行低级控制操作,没有与之对应的标准IO函数。
标准IO所能完成的功能,低级IO都能完成。
文件描述字具有的特殊功能:
1 执行非数据传输的控制操作,比如操作设备文件。
2 传递文件描述字给子进程,用与进程间通讯。
基本概念
对Linux内核而言,所有打开的文件都是通过文件描述字来引用。
文件描述字是一个非负整数,表示为int对象
当我们打开或创建文件时内核返回一个文件描述字给进程。
文件描述字取值为0~OPEN_MAX
Linux shell对于每个进程也预先定义好了3个文件描述字0,1,,标准输出,标准错误输出。可以使用符号常量STDIN_FILENO,STDOUT_FILENO, STDERR_FILENO表示这三个描述字,他们定义在<>
打开文件
#include <>
int open(const char * pathname, int flags, [,mode_t mode]);
功能: open打开或创建由pathname指定的文件,如果调用成功,则为pathname命名的文件创建文件描述字并返回文件描述字,同时文件定位到文件开始, 否则返回-1. 并置errno.
参数:pathname 打开或创建的文件路径。
flags 打开文件采取的动作。
mode 该参数仅当创建文件时才起作用,指定文件的访问权限。
打开文件
flags参数是一个位串,其值为以下常数做位或运算,取值为:
O_RDONLY 为只读而打开文件
O_WRONLY 为只写而打开文件
O_RDWR 为读写打开文件
O_APPEND 写的时候追加到文件尾。
O_CREAT 若此文件不存在则创建它。使用此选择项时,需同时说明第三个参数mode,用其说明该新文件的存取许可权位。
O_EXCL 如果同时指定了O_CREAT,而文件已经存在,则出错。这可测试一个文件是否存在,如果不存在则创建此文件成为一个原子操作。
O_TRUNC 如果此文件存在,而且为只读或只写成功打开,则将其长度截短为0。
O_NOCTTY 如果pathname指的是终端设备,则不将此设备分配作为此进程的控制终端。
O_NONBLOCK 非阻塞方式
O_SYNC 使每次write都等到物理I/O操作完成
打开文件
过时的create(const char *filename, mode_t mode)
create(filename, mode);
等价
open(filename, O_WRONLY|O_CREAT|OTRUNC, mode);
关闭文件
#include<>
Int close(int filedes);
功能:用于关闭由open打开的文件。
参数:filedes为open函数的返回值。
读文件
#include <>
ssize_t read(int fileds, void *buf, size_t nbytes);
功能: read从已经打开的与fildes相连的文件中读nbytes个字节到buf中。
返回值为实际读入的字节数, 若在实际读入之前遇到文件结束,返回值为0. 出错情况下,返回值为-1, 并置errno.
写文件
#include <>
ssize_t write(int fileds, const void *buf, size_t nbytes);
功能: write从buf中写前nbytes个字节到与文件描述字连接的文件中,buf中不一定要字符串, 空字符同样写出。
返回值为实际写出的字节数,也可能小于nbytes(物理介质满).出错时返回-1,并置errno.