LINUX下C语言编程——文件基础操作

一、文件描述符(file descriptor):通常是一个小的非负整数,内核用以标识一个特定进程正在访问的文件。当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。

二、open函数

1.函数格式:

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

int open(const char *pathname, int flag, mode_t mode)

2.参数:

1)需要打开的文件名(字符串):路径(缺省时为当前路径)+文件名。

2)打开模式(整形常量):系统宏定义。

O_CREAT:文件存在则使用,不存在则新建 。
O_EXCL:检查文件是否存在,不存在则返回错误信息-1。
O_CREAT|O_EXCL:检查文件是否存在,不存在则新建,存在则返回错误信息-1。
O_APPEND:每次都从文件尾写入。
O_TRUNC:存在文件时清空并打开。
在这里插入图片描述

3)仅当创建新文件时才使用,用于指定文件的访问权限位。

3.返回值:打开成功返回文件描述符,打开失败则返回-1。

三、creat函数(鸡肋完全可用open函数代替)

1.函数格式:

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

int creat(const char *pathname, mode_t mode)

2.参数:

1)需要创建的文件名(字符串):路径(缺省时为当前路径)+文件名。

2)仅当创建新文件时才使用,用于指定文件的访问权限位。

3.返回值:创建成功返回文件描述符,如果文件已存在则返回错误信息-1。

四、read函数

1.函数格式:#include <unistd.h>

ssize_t read(int fd, void *buf, size_t count);

2.参数:

1)需要读取的文件对应得描述符(整形)。

2)读取的数据存储的地方(指针)。

3)请求读取的字节数

3.返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0。

五、write函数

1.函数格式:#include <unistd.h>

ssize_t write(int fd, const void *buf, size_t count);

2.参数:

1)需要写入的文件对应得描述符(整形)。

2)写入的数据存储的地方(指针)。

3)请求写入的字节数。

3.返回值:成功返回写入的字节数,出错返回-1并设置errno写常规文件时,write的返回值通常等于请求写的字节数。

六、lseek函数(文件“光标”位置设置)

1.函数格式:

#include <sys/types.h>

#include <unistd.h>

off_t lseek(int fd, off_t offset, int whence);

2.参数:

1)需要操作的文件对应得描述符(整形)。

2)标准位偏移量(指针):为正则向文件末尾移动(向前移),为负数则向文件头部(向后移)

3)标准位置(整形常量)

在这里插入图片描述
SEEK_SET:文件头。
SEEK_CUR:当前光标位置。
SEEK_END:文件末尾。

3.返回值:成功则返回当前读写位置,即目前的文件指针距文件开头有多少个字节;失败则返回-1。

七、close函数(关闭文件)

1.函数格式:#include <unistd.h> …int close(int fd);

2.参数: 1)需要关闭的文件对应得描述符(整形)。

3.返回值:成功关闭返回0;文件不存在或者未打开返回-1。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值