吉安哪家做网站的公司好,es网站建设,网站数据库 mysql,网站建设百度推广总结基于linux操作系统#xff0c;编写存储功能#xff0c;在网上搜了几个例子#xff0c;一直报创建错误#xff0c;
fopen(SAVE_PATH_OWN_INF_FILE, w)
fopen(SAVE_PATH_OWN_INF_FILE, a),
使用这两个创建均失败#xff0c;最后发现创建可以用以…基于linux操作系统编写存储功能在网上搜了几个例子一直报创建错误
fopen(SAVE_PATH_OWN_INF_FILE, w)
fopen(SAVE_PATH_OWN_INF_FILE, a),
使用这两个创建均失败最后发现创建可以用以下示例已测试OK
若未写LOG_ERROR等处理改为printf即可。 示例
void test(void)
{
const char barcode_to_write[30] 1234567890; // 要写入的条形码
char barcode[30]; // 假设条形码不会超过99个字符
FILE* file;
//test 1 --------------
printf(open file\r\n);
file fopen(SAVE_PATH_OWN_INF_FILE, w); // 使用 w 模式以写入方式打开文件如果文件不存在则创建它
if (file NULL) {
fprintf(stderr, Failed to create barcode file: %s\n, strerror(errno));
// 尝试创建文件路径
char* directory strdup(SAVE_PATH_OWN_INF_FILE);
char* ptr directory;
while ((ptr strchr(ptr, /)))
{
*ptr \0;
mkdir(directory, 0777);
*ptr /;
ptr;
}
// 再次尝试打开文件
file fopen(SAVE_PATH_OWN_INF_FILE, w);
if (file NULL) {
fprintf(stderr, Failed to create barcode file: %s\n, strerror(errno));
exit(EXIT_FAILURE);
}
else
{
LOG_INFO(open file success);
}
} pthread_mutex_lock(p_mutexOwnInf); //os changes
printf(write file\r\n);
fwrite(barcode_to_write,sizeof(barcode_to_write),1,file);
pthread_mutex_unlock(p_mutexOwnInf); //os changes
fclose(file);
sleep(1); //test 2 --------------
file fopen(SAVE_PATH_OWN_INF_FILE, r);//r);
// 读取条形码
fread(barcode,sizeof(barcode),1,file) ; printf(Retrieved barcode: %s\n, barcode);
fclose(file);
}