名字 | 描述 |
path | 文件路径 |
oflag | 参考///utils/native/lite/include/utils_file.h O_RDONLY_FS:只读 O_WRONLY_FS:只写 O_RDWR_FS:读写 O_CREAT_FS:如果没有则创建 O_EXCL_FS:如果没有则创建;如有则不能打开 O_TRUNC_FS:如果文件存在,则清空文件内容 O_APPEND_FS:如果文件存在,则标记位置移动到文件最后 |
mode | 0 |
名字 | 描述 |
fd | 文件句柄 |
名字 | 描述 |
fd | 文件句柄 |
buf | 从文件读取内容的缓冲区 |
len | 从文件读取内容的大小 |
名字 | 描述 |
fd | 文件句柄 |
buf | 需要写入到文件的内容缓冲区 |
len | 需要写入到文件的内容大小 |
名字 | 描述 |
path | 文件路径 |
名字 | 描述 |
path | 文件路径 |
fileSize | 文件内容大小 |
名字 | 描述 |
fd | 文件句柄 |
offset | 文件位置移动位数 |
whence | SEEK_SET_FS:从文件开头移动 SEEK_CUR_FS:从文件当前位置移动 SEEK_END_FS:从文件结尾移动 |
void file_example()
{
unsigned int thread_id;
TSK_INIT_PARAM_S task = {0};
unsigned int ret = LOS_OK;
task.pfnTaskEntry = (TSK_ENTRY_FUNC)hal_file_thread;
task.uwStackSize = 1024 * 10;
task.pcName = "hal_file_thread";
task.usTaskPrio = 25;
ret = LOS_TaskCreate(&thread_id, &task);
if (ret != LOS_OK)
{
printf("Falied to create hal_file_thread ret:0x%xn", ret);
return;
}
}
APP_FEATURE_INIT(file_example);
void hal_file_thread()
{
int fd;
char buffer[1024];
int read_length, write_length;
int current = 0;
/* 打开文件,如果没有该文件就创建,如有该文件则打开
* O_TRUNC_FS => 清空文件内容
*/
//fd = HalFileOpen(FILE_NAME, O_RDWR_FS | O_CREAT_FS, 0);
fd = HalFileOpen(FILE_NAME, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0);
if (fd == -1)
{
printf("%s HalFileOpen failed!n", FILE_NAME);
return;
}
while (1)
{
/* 文件位置移动到文件开始位置 */
HalFileSeek(fd, 0, SEEK_SET);
memset(buffer, 0, sizeof(buffer));
/* 读取文件内容 */
read_length = HalFileRead(fd, buffer, sizeof(buffer));
printf("read: n");
printf(" length = %dn", read_length);
printf(" content = %sn", buffer);
/* 文件位置移动到文件开始位置 */
HalFileSeek(fd, 0, SEEK_SET);
memset(buffer, 0, sizeof(buffer));
snprintf(buffer, sizeof(buffer), "Hello World(%d) => ", current);
/* 写入文件 */
write_length = HalFileWrite(fd, buffer, strlen(buffer));
current++;
LOS_Msleep(5000);
}
HalFileClose(fd);
}
hb set -root .
hb set
hb build -f
HalFileInit: Flash Init Successful!
read:
length = 0
content =
read:
length = 18
content = Hello World(0) =>
read:
length = 18
content = Hello World(1) =>
更多回帖