Linux下文件操作的主要系统调用,注意要点及说明!


基本上所有的操作系统都会有对文件的操作,也叫文件I/O。除开可以C函数库中基本操作外,所有操作系统都会针对各自的特点重新提供一些操作文件的API,下面描述一下linux下的主要文件操作API。

一、函数名称及格式。
creat   函数(相信很多的初学者都会在这个名字上吃点小亏)- 创建文件

int creat(const char* pathname,mode_t mode);
/* 返回值 :若成功返回为只写打开的文件描述符,若错误则返回 -1*/

open  函数 – 打开文件

int open(const char* pathname,int oflag,.../* mode_t mode*/);
/* 返回值 :若成功返回为文件描述符,若错误则返回 -1*/

close 函数 – 关闭文件

int close(int fileds);
/* 返回值 :若成功返回为0,若错误则返回 -1*/

lseek 函数 – 移动到文件的指定位置

int lseek(int fileds,off_t offset,int whence);
/* 返回值 :若成功返回为新的文件偏移量,若错误则返回 -1*/

read 函数 – 读取文件内容

ssize_t read(int fileds,void*buf,size_t nbytes);
/* 返回值:若是成功返回读到字节数,若是文件结尾则返回0,若是错误则返回-1*/

write 函数 – 向文件中写入内容

ssize_t write(int fileds,const void*buf,size_t nbytes);
/* 返回值:若是成功返回写入字节数,若是错误则返回-1*/

access 函数 – 判断文件的读写权限

int access(const char* pathname,int mode);
/*返回值: 成功返回1,错误返回0*/

二、对应的头文件表:

#include <fcntl.h> 时,可以使用函数:creat();open();access();
#include <unistd.h>时,可以使用函数:close();read();write();lseek();

三、需要注意点说明:

1.  由于creat函数的很多限制,目前常用如下方式替代掉creat函数新建文件:

open(pathname,O_WRONLY | O_CREAT | O_TRUNC,mode);

2.  读取数据时,若是数据量少于nbytes,则返回实际的读取数。

3.  文件的操作是按照字节的方式操作,因此在计算是一般按照字节计算相应的值。

发表评论

电子邮件地址不会被公开。 必填项已用*标注