Linux下文件操作的主要系统调用,注意要点及说明!-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

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

简介: 基本上所有的操作系统都会有对文件的操作,也叫文件I/O。除开可以C函数库中基本操作外,所有操作系统都会针对各自的特点重新提供一些操作文件的API,下面描述一下linux下的主要文件操作API。 一、函数名称及格式。 creat   函数(相信很多的初学者都会在这个名字上吃点小亏)- 创建文件 int creat(const char* pathname,mode_t mode

基本上所有的操作系统都会有对文件的操作,也叫文件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.  文件的操作是按照字节的方式操作,因此在计算是一般按照字节计算相应的值。






   

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章