外观
文件操作示例
2025-10-29
概述
本示例演示如何在 RT-Thread 操作系统中进行文件操作,包括创建文件、写入数据和读取数据的基本功能,帮助用户掌握文件系统的常见操作方法。
文件写入与读取示例
本示例以演示在/data目录下创建文件、写入指定字符串并读取文件内容打印到 MSH 控制台为实践目标,实现创建文件、写入特定字符串、读取并展示文件内容的演示效果。
创建工程点击展开
依次点击 “文件” -> “新建” -> "RT-Thread RuiChing App 项目"。

在弹出新建向导中选择 开发版 、BSP: 、示例 、 调试器/下载器。选择好之后点击 “完成”。

点击 “完成” 后,等待工程创建完成。

创建完成。

构建工程点击展开
单击工程使工程进入 Active-Debug 模式。

点击工具栏上的构建按钮进行工程编译。

构建成功后,会显示构建成功的信息。

固件下载点击展开
固化设备树

固化 APP

核心示例代码
file 示例相关 API
open:以读写模式(O_RDWR)打开文件,若文件不存在则创建(O_CREAT),且每次打开时清空文件内容(O_TRUNC);write: 将 EXAMPLE_MESSAGE 字符串写入文件,写入字节数为字符串长度;lseek:将文件指针移动到文件开头,以便后续读取操作从文件起始位置开始;read:从文件中读取内容到 buf 数组,最多读取 sizeof(buf) - 1 字节;close:关闭文件;
applications/file_example.c
char buf[64];
fd = open(EXAMPLE_FILE, O_RDWR | O_CREAT | O_TRUNC, 0); // 打开文件
if (fd < 0)
{
LOG_E("Open file for write failed!");
goto __exit;
}
write_size = write(fd, EXAMPLE_MESSAGE, strlen(EXAMPLE_MESSAGE)); // 向文件写入
if (write_size < 0)
{
LOG_E("Write file failed!");
goto __exit;
}
lseek(fd, 0, SEEK_SET); // 偏移文件操作指针
read_size = read(fd, buf, sizeof(buf) - 1); // 从文件读取
if (read_size < 0)
{
rt_kprintf("Read file failed!\n");
goto __exit;
}
if (read_size != write_size)
{
LOG_E("read failed, read size: %d, write size: %d", read_size, write_size);
goto __exit;
}
buf[read_size] = '\0';
LOG_I("read content: %s", buf);
rt_err = RT_EOK;
__exit:
close(fd); // 关闭文件运行示例
操作步骤
- 将程序下载到开发板
- 打开串口终端连接开发板
- 输入
file_example命令
预期结果
- 向文件中写入指定字符串
- 成功读取文件内容并打印到终端
- 终端显示
read content: This is an rt-thread file system example
rtt 终端
msh />file_example
[I/example.file] read content: This is an rt-thread file system example
msh />