信息掉电不保存问题分析如下
OS查看了data分区是可读写的,hmi仍然提示找不到目录或文件
猜测:hmi打不开或写不进文件是open函数的参数设置,权限不适当导致的
测试程序如下,有两个注意点
OS查看了data分区是可读写的,hmi仍然提示找不到目录或文件
猜测:hmi打不开或写不进文件是open函数的参数设置,权限不适当导致的
测试程序如下,有两个注意点
1、请注意关于权限mode参数的设置(当前系统权限掩码umask 0022)
#include<unistd.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #include<stdio.h> void main() { int fd,size; char s [ ]="Linux Programmer!\n", buffer[80]; fd=open("/data/data/Persistency", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH); write(fd, s, sizeof(s)); close(fd); fd=open("/data/data/Persistency", O_RDONLY); size=read(fd,buffer,sizeof(buffer)); close(fd); printf("%ssize= %d \n", buffer, size); }2、 在现有系统中只存在/data目录, O_RDWR|O_CREAT 参数是不能直接创建 /data/data/Persistency 文件的
需要在打开文件前先创建目录
mkdir("/data/data",0777); fd=open("/data/data/Persistency", O_RDWR|O_CREAT, S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
下图是运行结果