1.read()函数
read()函数包含在头文件<unistd.h>中, 原型:ssize_t read(int fd,void *buf,size_t count); 函数参数的含义:从文件描述符fd所指的文件中读取count个字节的数据到buf所指向的缓冲区,count为0,不读数据,返回0,返回值就是实际读取的字节数,如果read()顺利返回实际读到的字节数,和参数count比较,若返回值<count,说明文件到了文件末尾,或 读取过程中被信号中断了读取过程,有错误时返回-1;
2.write()函数
write()函数包含在头文件<unistd.h>中, 原型:ssize_t write(int fd,const void *buf,size_t count); 函数参数的含义:将buf所指的缓冲区中的count 个字节数据写入到文件描述符fd所指示的文件中,文件指针会随之移动,调用成功,write()返回成功写入的字节数;
3.sleek()函数
sleek()函数包含在头文件<sys/types.h>和<unistd.h>中. 原型:off_t lseek(int fildes,off_t offset,int whence); 每个已打开的文件都有一个读写位置,当打开文件通常的读写位置是指向文件的开头,若是以追加的方式打开(调用open 函数时使用了O_APPEND),则读写位置会指向文件末尾,当调用read()或creat()时,读写的位置随之增加;参数fildes为已打开的文件描述符,参数offset为根据参数whence来移动的读写位置的偏移量.文件指针的值等于当前指针的值加上offset的值,参数whence有以下三种取值: 1.SEEK_SET:从文件开始处计算偏移量,文件指针到文件开始处的偏移量为offset. 2.SEEK_CUR:从文件的指针的当前位置开始计算偏移量,文件指针值等于当前指针值加上offset的值,offset允许为负数. 3.SEEK_END:从文件的结尾处计算偏移量,文件指针值等于当前指针的值加上offset的值.offset 允许取负数; 以下是lseek的几种常用方法:
- 将文件读写位置移动到文件开头:lseek(int fides,0,SEEK_SET);
- 将文件读写位置移动到文件结尾:lseek(int fides,0,SEEK_END);
- 获取文件读写指针当前的位置(相对于文件开头):lseek(int fides,0,SEEk_CUR);
注意:linux 系统不允许lseek()对tty设备进行操作;