润和Neptune(W800)文件不能写入

参照鸿蒙官方指引,在润和Neptune(W800)开发板上测试,写入字节数总是0,不知道是什么原因,特来请教大神!

相关代码如下:

		else if (strcmp((char *)p_uart_opr->rx_buffer, "test-fs") == 0)
		{
			// open && write
			char fileName[] = "testfile";
			static const char def[] = "utils_file_operation implement.";
			int fd = UtilsFileOpen(fileName, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0);
			printf("file handle = %d\n", fd);
			int ret = UtilsFileWrite(fd, def, strlen(def));
			printf("write ret = %d\n", ret);

			// seek
			ret = UtilsFileSeek(fd, 5, SEEK_SET_FS);
			printf("lseek ret = %d\n", ret);

			// read && close
			char buf[64] = {0};
			int readLen = UtilsFileRead(fd, buf, 64);
			ret = UtilsFileClose(fd);
			printf("read len = %d : buf = %s\n", readLen, buf);

			// stat
			int fileLen = 0;
			ret = UtilsFileStat(fileName, &fileLen);
			printf("file size = %d\n", fileLen);

			// delete
			ret = UtilsFileDelete(fileName);
			printf("delete ret = %d\n", ret);
		}

 

在终端打印如下:

Received 7 byte(s) new data from UART1:
test-fs
file handle = 0
write ret = 0
lseek ret = 0
read len = 0 : buf = 
file size = 0
delete ret = 0

 

Neptune
W800
文件读写
公共基础
2021-08-12 11:09:38
浏览
2
收藏 0
回答 3
已解决
回答 3
按赞同
/
按时间
HMFanXinhao
1

你好,你可以去找个历程看看别人是怎么用的,是不是要指定文件位置?挂载文件系统?创建文件?

分享
微博
QQ
微信
回复
2021-08-17 14:15:46
HMFanXinhao

int fd = UtilsFileOpen(fileName, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0);

fd为0说明上面语句都没有执行成功,你看看是什么参数有问题,或者是初始化没做之类的。
已于2021-8-17 14:27:23修改
分享
微博
QQ
微信
回复
2021-08-17 14:17:47
远道可思

这个功能在HI3861是没有问题的,因此功能是要依赖底层的SDK才能实现,但我发现此功能在neptune-harmony-os1.1-iot/device/winnermicro/neptune/w800_adapter/hals/utils/file中实现此功能的libhal_file_static.a静态库中并没有链接底层W800 SDK中的函数,所以此功能在W800 中尚未实现。

分享
微博
QQ
微信
回复1
2021-08-18 15:20:26