linux编程---C语言底层文件I/O常用文件操作函数

底层文件IO

一、包含的头文件

<unistdio.h>
<fcntl.h>

二、文件描述符与open函数与close函数

1.文件描述符fd(自己命名用以区分不同的文件)

2.open函数(打开或创建一个文件)

用文件描述符去接收其返回值(int)

int fd = open(char *, flag, Authority);

第一个参数(char*):包含有文件名和路径

第二个参数(flag):打开文件的方式

flag功能
O_RDONLY只读
O_WRONLY只写
O_RDWR可读可写
O_CREAT创建一个文件
O_EXCL测试文件是否存在
O_TRUNC打开一个文件并把文件内原来的内容删除
O_APPEND追加方式打开文件

第三个参数(Authoritty):创建文件的权限(打开一个文件不需要写此参数)

3.close函数

作用:关闭文件

三、write函数

int wr_ret = write(int fd, void *wr_buf, size_t count);

第一个参数(fd):文件描述符

第二个参数(wr_buf):向文件中写入的内容

第三个参数(count):将要向文件中写多少内容

返回值(wr_ret):实际所写的内容d

四、read函数

int rd_buf = read(int fd, void *rd_buf, size_t count);

第一个参数(fd):文件描述符

第二个参数(rd_buf):为即将读取的内容设置一个缓冲区

第三个参数(count):读多少个

返回值(rd_ret):实际所读取内容的字节数

五、lseek函数

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

第一个参数(fd):文件描述符

第二个参数(offset):文件位置指针移动的位数

第三个参数(whence):将文件位置指针移动到何处

whence位置
SEEK_SET文件的开头
SEEK_CUR文件位置指针的当前位置
SEEK_END文件末尾

函数的返回值:

成功:文件的当前位置

失败:-1

代码示例

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>

int main()
{
    //定义读写缓冲区
    char wr_buf[] = "hello world!";
    char rd_buf[128] = {0};
    //定义文件描述符
    int fd = open("1.txt", O_TRUNC|O_RDWR, 0777);
    if(fd < 0){
        printf("open error!\n");
        return -1;
    }
    write(fd, wr_buf, sizeof(wr_buf));
    lseek(fd, -6, SEEK_END);
    read(fd, rd_buf, sizeof(rd_buf));
    printf("%s\n", rd_buf);
    //关闭文件
    close(fd);
    return 0;
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值