Linux IO函数

read/write函数:

1.read

#include <unistd.h>

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

参数:

-fd:文件描述符,open得到的,通过这个文件描述符操作某个文件

-buf:需要读取数据存放的地方,数组的地址;

-count:指定的数组的大小

返回值:

-成功:

>0:返回实际的读取到的字节数

=0:文件已经读完了

-失败:

返回-1,并且设置error

2.write

#include <unistd.h>

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

参数:

-fd:文件描述符,open得到的,通过这个文件描述符操作某个文件

-buf:需要读取数据存放的地方,数组的地址;

-count:要写的数据的实际的大小

返回值:

-成功:

>0:返回实际的写入的字节数

=0:没有任何的内容写入

-失败:

返回-1,并且设置error

lseek函数

#include <sys/types.h>

#include <unistd.h>

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

参数:

-fd:文件描述符

-offset:偏移量

-whence:

SEEK_SET

设置文件指针的偏移量

SEEK_CUR

设置偏移量:当前位置 + 第二个参数offset的值

SEEK_END

设置偏移量:文件大小 + 第二个参数的值

返回值:返回文件指针所在的位置

作用:

1.移动文件指针到文件头 lseek(fd, 0, SEEK_SET)

2.获取当前文件指针的位置 lseek(fd, 0, SEEK_CURRENT)

3.获取文件长度 lseek(fd, 0, SEEK_END)

4.拓展文件的长度 lseek(fd, 100, SEEK_END)(增加100个字节)需要写一次数据

stat/lstat函数

#include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

  1. int stat(const char *pathname, struct stat *statbuf);

作用:获取一个文件相关的信息,如文件大小、权限、Inode、Uid、最近访问时间、最近更改时间、最近改动时间等等

参数:

-pathname:操作文件的路径

-statbuf:结构体变量,传出参数,用于保存获取到的文件的信息

返回值:

成功:返回0

失败:返回-1,设置errno

2. int lstat(const char *pathname, struct stat *statbuf);

获取软连接文件的信息

相关推荐
旖旎夜光8 分钟前
LeetCode 904:水果成篮(滑动窗口) —— 题解
数据结构·c++·算法·leetcode·滑动窗口
怪奇云呼军28 分钟前
G.711、Opus 和重采样会拖慢识别吗?闪电智能VoiceAgent 的音频入口怎么选
java·人工智能·python·算法·云计算·音视频
乐观勇敢坚强的老彭2 小时前
C++ 竞赛常用算法模板速查表
开发语言·c++·算法
高洁012 小时前
工信部教考中心证书
人工智能·深度学习·算法·机器学习·知识图谱
我变成萤火虫2 小时前
河南萌新联赛2026第(三)场:郑州轻工业大学
数据结构·c++·算法·贪心算法·stl·深度优先·哈希算法
Dr.kangder2 小时前
嵌入式面试总结(十九)——内存泄露
单片机·算法·面试·职场和发展·架构·硬件架构
Herbert_hwt2 小时前
【C语言基础】常量、选择结构与运算符全解析
c语言·开发语言·算法
Suxing93 小时前
C语言基础分享:从“租房”到“拆迁”,C语言动态内存管理
java·数据结构·算法
LuminousCPP4 小时前
单链表专题(四)-刷题复盘篇-LeetCode 138 随机链表复制|原地拷贝法突破复杂指针操作
数据结构·笔记·算法·leetcode·链表
逆境不可逃4 小时前
【LeetCode 912】排序数组——随机化快速排序详解
数据结构·算法·排序算法