$darkmode
RuiChing API 参考手册
V0.9.1
文件操作

文件读写及相关操作函数 更多...

宏定义

#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)
 显示文件内容 更多...
 

详细描述

文件读写及相关操作函数

函数说明

◆ open()

int open ( const char *  file,
int  flags,
  ... 
)

打开或创建文件

打开指定的文件,并根据指定的标志返回文件描述符

参数
[in]file打开或创建的文件名
[in]flags指定打开文件的方式
标志位 含义
O_RDONLY 只读
O_WRONLY 只写
O_RDWR 读写
O_CREAT 文件不存在时创建
O_TRUNC 打开时清空文件
O_APPEND 追加模式
[in]...可选参数:创建文件时指定权限模式(mode_t)
返回值
>=0成功打开的文件描述符
-1打开失败,错误代码将存入当前线程的 errno 中

◆ creat()

int creat ( const char *  path,
mode_t  mode 
)

创建新文件

创建指定路径的新文件并返回其文件描述符

参数
[in]path要创建的文件路径名
[in]mode文件权限模式(未使用,可以是0)
返回值
>=0成功创建的文件描述符(只写模式)
-1创建失败,错误代码将存入当前线程的 errno 中

◆ read()

ssize_t read ( int  fd,
void *  buf,
size_t  len 
)

读取数据

该函数接口会把参数 fd 所指的文件的 len 个字节读取到 buf 指针所指的内存 中,文件的读写位置会随读取到的字节移动

参数
[in]fd文件描述符
[out]buf读取数据将要写入的缓存地址指针
[in]len请求读取文件的字节数
返回值
>0实际读取到的字节数
0已到达文件末尾(EOF)或者无可读取的数据
-1读取失败,错误代码将存入当前线程的 errno 中
注解
  • 实际读取的字节数可能小于请求的 len

◆ write()

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

写入数据

函数接口会把buf 指针所指向的内存中 len 个字节写入到参数 fd 所指向的文件 内,文件的读写位置会随写入的字节移动

参数
[in]fd文件描述符
[in]buf预写入数据的地址指针
[in]len预写入文件的字节数
返回值
>=0实际成功写入的字节数
-1写入失败,错误代码将存入当前线程的 errno 中
注解
  • 实际写入的字节数可能小于预写入的 len
  • 文件位置指针会随写入操作前进

◆ close()

int close ( int  d)

关闭文件

此函数是POSIX兼容版本,它将关闭指定的文件

参数
[in]fd文件描述符
返回值
0关闭成功
-1关闭失败,错误代码将存入当前线程的 errno 中
注解
  • 该函数必须和 open()、creat() 等函数成对使用

◆ lseek()

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

重新定位打开的文件描述符的文件偏移量

设置文件描述符对应的文件位置指针,用于随机访问文件内容

参数
[in]fd文件描述符
[in]offset设置文件位置的偏移量,以字节为单位
[in]whence基准位置
标志位 含义
SEEK_SET 文件开头
SEEK_CUR 当前位置
SEEK_END 文件末尾
返回值
>=0返回文件中的读写位置
-1定位失败,错误代码将存入当前线程的 errno 中

◆ fsync()

int fsync ( int  fildes)

将文件数据同步到存储设备

将文件描述符对应的文件数据强制写入磁盘

参数
[in]fildes文件描述符
返回值
0同步成功
-ENOSYS系统不支持
其他负值同步失败

◆ rename()

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 中

◆ fcntl()

int fcntl ( int  fildes,
int  cmd,
  ... 
)

文件描述符控制函数

对打开的文件描述符执行各种控制操作

参数
[in]fildes文件描述符
[in]cmd控制命令
标志位 含义
F_DUPFD 复制文件描述符
F_GETFD 获取文件描述符标志
F_SETFD 设置文件描述符标志
F_GETFL 获取文件状态标志
F_SETFL 设置文件状态标志
[in]...可选参数,取决于cmd的值
返回值
>=0成功时返回值取决于 cmd
标志位 含义
F_DUPFD 返回新的文件描述符
F_GETFD/F_GETFL 返回相应的标志值
其他 SET 命令 返回 0
-1失败,错误代码存入 errno

◆ stat()

int stat ( const char *  file,
struct stat *  buf 
)

获取文件状态信息

获取指定文件或目录的详细状态信息,包括文件类型、大小等属性

参数
[in]file目标文件名
[out]buf用于存储文件状态信息的结构体指针
返回值
0获取成功,信息存储在 buf 中
-1获取失败,错误代码将存入当前线程的 errno 中

◆ fstat()

int fstat ( int  fd,
struct stat buf 
)

获取文件描述符对应的文件状态信息

通过文件描述符获取文件的元数据(如类型、权限、大小、时间戳等), 结果存储在 stat 结构体中

参数
[in]fd要查询的文件描述符
[out]buf用于存储文件状态信息的 stat 结构体指针
返回值
0获取成功,结果填充至 buf
-1获取失败,错误代码将存入当前线程的 errno 中
注解
  • 本函数与 stat() 函数相似,不同的是,它是作用于已打开的文件的文 件描述符而不是文件名

◆ ioctl()

int ioctl ( int  fildes,
int  cmd,
  ... 
)

设备控制操作

对设备文件执行特定的控制操作,用于设备配置和特殊功能控制。这是一个可 变参数函数,具体参数取决于 cmd 命令

参数
[in]fildes文件描述符
[in]cmd控制命令码(设备相关)
[in]...附加参数(取决于具体cmd)
返回值
>=0成功执行时的返回值(命令相关)
-1执行失败,错误代码将存入当前线程的 errno 中

◆ ftruncate()

int ftruncate ( int  fd,
off_t  length 
)

文件截断函数

将文件描述符对应的文件截断或扩展至指定长度、

参数
[in]fd文件描述符
[in]length要截断的长度
返回值
0成功
-1失败,错误代码将存入当前线程的 errno 中

◆ cat()

void cat ( const char *  filename)

显示文件内容

将指定文件的内容输出到标准输出

参数
[in]filename要显示的文件名