$darkmode
文件读写及相关操作函数 更多...
宏定义 | |
#define | O_RDONLY 0x0000 |
只读模式 | |
#define | O_WRONLY 0x0001 |
只写模式 | |
#define | O_RDWR 0x0002 |
读写模式 | |
#define | O_APPEND 0x0008 |
writes done at eof | |
#define | O_CREAT 0x0100 |
文件不存在时创建 | |
#define | O_TRUNC 0x0200 |
打开时清空文件 | |
#define | O_EXCL 0x0400 |
追加模式 | |
#define | F_DUPFD 0 |
复制文件描述符 | |
#define | F_GETFD 1 |
获取文件描述符标志 | |
#define | F_SETFD 2 |
设置文件描述符标志 | |
#define | F_GETFL 3 |
获取文件状态标志 | |
#define | F_SETFL 4 |
设置文件状态标志 | |
函数 | |
int | open (const char *file, int flags,...) |
打开或创建文件 更多... | |
int | creat (const char *path, mode_t mode) |
创建新文件 更多... | |
ssize_t | read (int fd, void *buf, size_t len) |
读取数据 更多... | |
ssize_t | write (int fd, const void *buf, size_t len) |
写入数据 更多... | |
int | close (int d) |
关闭文件 更多... | |
off_t | lseek (int fd, off_t offset, int whence) |
重新定位打开的文件描述符的文件偏移量 更多... | |
int | fsync (int fildes) |
将文件数据同步到存储设备 更多... | |
int | rename (const char *old_file, const char *new_file) |
重命名 更多... | |
int | fcntl (int fildes, int cmd,...) |
文件描述符控制函数 更多... | |
int | stat (const char *file, struct stat *buf) |
获取文件状态信息 更多... | |
int | fstat (int fd, struct stat *buf) |
获取文件描述符对应的文件状态信息 更多... | |
int | ioctl (int fildes, int cmd,...) |
设备控制操作 更多... | |
int | ftruncate (int fd, off_t length) |
文件截断函数 更多... | |
void | cat (const char *filename) |
显示文件内容 更多... | |
文件读写及相关操作函数
int open | ( | const char * | file, |
int | flags, | ||
... | |||
) |
int creat | ( | const char * | path, |
mode_t | mode | ||
) |
创建新文件
创建指定路径的新文件并返回其文件描述符
[in] | path | 要创建的文件路径名 |
[in] | mode | 文件权限模式(未使用,可以是0) |
>=0 | 成功创建的文件描述符(只写模式) |
-1 | 创建失败,错误代码将存入当前线程的 errno 中 |
ssize_t read | ( | int | fd, |
void * | buf, | ||
size_t | len | ||
) |
读取数据
该函数接口会把参数 fd 所指的文件的 len 个字节读取到 buf 指针所指的内存 中,文件的读写位置会随读取到的字节移动
[in] | fd | 文件描述符 |
[out] | buf | 读取数据将要写入的缓存地址指针 |
[in] | len | 请求读取文件的字节数 |
>0 | 实际读取到的字节数 |
0 | 已到达文件末尾(EOF)或者无可读取的数据 |
-1 | 读取失败,错误代码将存入当前线程的 errno 中 |
ssize_t write | ( | int | fd, |
const void * | buf, | ||
size_t | len | ||
) |
写入数据
函数接口会把buf 指针所指向的内存中 len 个字节写入到参数 fd 所指向的文件 内,文件的读写位置会随写入的字节移动
[in] | fd | 文件描述符 |
[in] | buf | 预写入数据的地址指针 |
[in] | len | 预写入文件的字节数 |
>=0 | 实际成功写入的字节数 |
-1 | 写入失败,错误代码将存入当前线程的 errno 中 |
int close | ( | int | d | ) |
关闭文件
此函数是POSIX兼容版本,它将关闭指定的文件
[in] | fd | 文件描述符 |
0 | 关闭成功 |
-1 | 关闭失败,错误代码将存入当前线程的 errno 中 |
off_t lseek | ( | int | fd, |
off_t | offset, | ||
int | whence | ||
) |
重新定位打开的文件描述符的文件偏移量
设置文件描述符对应的文件位置指针,用于随机访问文件内容
[in] | fd | 文件描述符 | ||||||||
[in] | offset | 设置文件位置的偏移量,以字节为单位 | ||||||||
[in] | whence | 基准位置
|
>=0 | 返回文件中的读写位置 |
-1 | 定位失败,错误代码将存入当前线程的 errno 中 |
int fsync | ( | int | fildes | ) |
将文件数据同步到存储设备
将文件描述符对应的文件数据强制写入磁盘
[in] | fildes | 文件描述符 |
0 | 同步成功 |
-ENOSYS | 系统不支持 |
其他负值 | 同步失败 |
int rename | ( | const char * | old_file, |
const char * | new_file | ||
) |
重命名
该函数会将参数 old_file 所指定的文件名称改为参数 new_file 所指的文件名称。 若 new_file 所指定的文件已经存在,则该文件将会被覆盖
[in] | old_file | 旧文件名 |
[in] | new_file | 新文件名 |
0 | 重命名成功 |
-1 | 重命名失败,错误代码将存入当前线程的 errno 中 |
int fcntl | ( | int | fildes, |
int | cmd, | ||
... | |||
) |
int stat | ( | const char * | file, |
struct stat * | buf | ||
) |
获取文件状态信息
获取指定文件或目录的详细状态信息,包括文件类型、大小等属性
[in] | file | 目标文件名 |
[out] | buf | 用于存储文件状态信息的结构体指针 |
0 | 获取成功,信息存储在 buf 中 |
-1 | 获取失败,错误代码将存入当前线程的 errno 中 |
int fstat | ( | int | fd, |
struct stat * | buf | ||
) |
获取文件描述符对应的文件状态信息
通过文件描述符获取文件的元数据(如类型、权限、大小、时间戳等), 结果存储在 stat 结构体中
[in] | fd | 要查询的文件描述符 |
[out] | buf | 用于存储文件状态信息的 stat 结构体指针 |
0 | 获取成功,结果填充至 buf |
-1 | 获取失败,错误代码将存入当前线程的 errno 中 |
int ioctl | ( | int | fildes, |
int | cmd, | ||
... | |||
) |
设备控制操作
对设备文件执行特定的控制操作,用于设备配置和特殊功能控制。这是一个可 变参数函数,具体参数取决于 cmd 命令
[in] | fildes | 文件描述符 |
[in] | cmd | 控制命令码(设备相关) |
[in] | ... | 附加参数(取决于具体cmd) |
>=0 | 成功执行时的返回值(命令相关) |
-1 | 执行失败,错误代码将存入当前线程的 errno 中 |
int ftruncate | ( | int | fd, |
off_t | length | ||
) |
文件截断函数
将文件描述符对应的文件截断或扩展至指定长度、
[in] | fd | 文件描述符 |
[in] | length | 要截断的长度 |
0 | 成功 |
-1 | 失败,错误代码将存入当前线程的 errno 中 |
void cat | ( | const char * | filename | ) |
显示文件内容
将指定文件的内容输出到标准输出
[in] | filename | 要显示的文件名 |