当前位置: 首页 > news >正文

文件写入、读出-linux

基于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);

}

http://www.lryc.cn/news/409217.html

相关文章:

  • 环境搭建-Windows系统搭建Docker
  • k8s零零散散问题
  • The Llama 3 Herd of Models.Llama 3 模型论文全文
  • ChatGPT的原理和成本
  • 无刷电机的ESC电子速度控制模块夹紧铁芯或更换镇流器
  • OpenAI发布AI搜索惨遭翻车?新老搜索的较量愈演愈烈!
  • SpringBoot整合阿里云短信业务
  • Kubernetes安全--securityContext介绍
  • 【React】通过实际示例详解评论列表渲染和删除
  • React 中 useState 语法详解
  • (面试必看!)一些和多线程相关的面试考点
  • 从零到一使用 Ollama、Dify 和 Docker 构建 Llama 3.1 模型服务
  • 【React】详解 React Router
  • 微软蓝屏”事件暴露了网络安全哪些问题?
  • upload-labs靶场练习
  • java使用hutool工具判断ip或者域名是否可用,java使用ping判断ip或者域名是否可用
  • apache2和httpd web服务器
  • 基于多种机器学习的豆瓣电影评分预测与多维度可视化【可加系统】
  • Linux系统配置STM32的开发环境(代码编辑,编译,下载调试)
  • 每日一题——第三十五题
  • Echarts 柱状图实现同时显示百分比+原始值+汇总值
  • 嵌入式学习Day13---C语言提升
  • Mysql随记
  • wire和reg的区别
  • c语言第四天笔记
  • Hive——UDF函数:高德地图API逆地理编码,实现离线解析经纬度转换省市区(离线地址库,非调用高德API)
  • 深入解析PHP框架:Symfony框架的魅力与优势
  • Go语言实战:基于Go1.19的站点模板爬虫技术解析与应用
  • 5个ArcGIS图源分享
  • 科普文:万字梳理31个Kafka问题