Mongoose 开源库--Filesystem(文件系统)使用笔记
一、相关API
Mongoose 开源库中也包含 文件系统 相关的 API,如下:
文件虚拟层:
struct mg_fs {int (*st)(const char *path, size_t *size, time_t *mtime); // stat filevoid (*ls)(const char *path, void (*fn)(const char *, void *), void *);void *(*op)(const char *path, int flags); // Open filevoid (*cl)(void *fd); // Close filesize_t (*rd)(void *fd, void *buf, size_t len); // Read filesize_t (*wr)(void *fd, const void *buf, size_t len); // Write filesize_t (*sk)(void *fd, size_t offset); // Set file positionbool (*mv)(const char *from, const char *to); // Rename filebool (*rm)(const char *path); // Delete filebool (*mkd)(const char *path); // Create directory
};enum { MG_FS_READ = 1, MG_FS_WRITE = 2, MG_FS_DIR = 4 };
具体可查看官方文档,官方介绍文档:
https://mongoose.ws/documentation/#filesystem
二、测试代码
测试代码如下:
#include "mongoose.h"int main(int argv,char *argc[])
{mg_log_set(MG_LL_DEBUG); // Set log levelsize_t size = 0;char *data=NULL;struct mg_fd *fd=NULL;if(argv != 3){MG_INFO(("argc[1] is file path\n"));MG_INFO(("argc[2] is file content\n"));return -1;}MG_INFO(("%d\n",1));// fd = mg_fs_open(&mg_fs_posix, "./test.txt", MG_FS_WRITE);// mg_fs_close(fd);MG_INFO(("%d\n",2));mg_file_write(&mg_fs_posix, argc[1], argc[2], strlen(argc[2]));// MG_INFO(("%d\n",3));// fd = mg_fs_open(&mg_fs_posix, "./test.txt", MG_FS_READ);// mg_fs_close(fd);MG_INFO(("%d\n",4));data= mg_file_read(&mg_fs_posix, argc[1], &size);MG_INFO(("%s\n",data)); if(data != NULL)free(data);return 0;
}
生成可执行文件main。
测试的文件名为2.txt,文件内容为“123456789abcdef”。
输入指令
./main 2.txt 123456789abcdef
结果:
欢迎关注公众号:嵌入式学习与实践