文件I/O
当我还喜滋滋的乐道,LINUX下用C语言编程会很方便的时侯,编了几个小程序后,才发现LINUX自有一套自己的I/O函数,数值.而它们并不是ISO C的组成部分。
1文件描述符
文件描述符是一个非负整数。当打开一个现有文件或者创建一个新文件时,内核间进程返回一个文件描述符。当读或写一个文件时,使用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或write
2open函数
#include<fcntl.h>
int open(const char*pathname.int oflag,...)若成功,则返回文件描述符,否则返回-1
pathname是要打开或创建的文件的名字
oflag参数可用来设置此函数的多个选项,用下列一个或多个常量进行'或'运算,构成oflag参数(这些常量定义在<fcntl.h>头文件中)
O_RDONLY只读方式
O_WRONLY只读方式
O_RDWR 读写打开
3creat函数
也可调用creat函数创建一个新文件
#include<fcontl.h>
int creat(const char*pathname.mode_t mode);若成功则返回为只写打开的文件描述符,否则返回-1,等效于:
open(pathname.O_WRONLY|O_CREAT|O_TRUNC,mode)
creat的一个不足之处的是它以只写方式打开所创建的文件,可用下列方式调用open
open(pathname,O_RDWR|O_CREAT|O_TRUNC,mode)
4close函数
#include<unstd.h>
int close(int fiedes);若成功则返回0.否则返回-1
5lseek函数
可以调用lseek显示地为一个打开的文件设置其偏移量
#include<unistd.h>
off_t lseek(int fields.off_t offset,int whence)
调用方式
off_t currpos;
currpos=lseek(fd.0,SEEK_CUR);
6read函数
#include<unistd.h>
ssize_t read(int filedes,void *buf,size_t nbytes)若成功,则返咽读到的字节数,若已到文件结尾则返回0,否则出错则返回-1
7write函数
#include<unistd.h>
ssize_t write(int filedes,const void *buf,size_t nbytes)若成功,则返回已写的字节数,否则返回-1
|


ghong45
博客统计信息
热门文章
最新评论
友情链接