Fopen函数创建打开文件失败,导致vfprintf函数失败,出现段错误

在Linux设备项目中,使用fopen创建日志文件时遇到段错误。问题源于路径不存在导致fopen失败。通过添加access函数检查路径,必要时创建目录,然后重新尝试fopen,解决了文件打开失败的问题。同时,对fopen的使用进行了详细解释,包括文件打开模式和可能的errno错误码。
摘要由CSDN通过智能技术生成

项目场景:

Linux下设备,项目中需要保存设备运行时候相关的日志,所以使用fopen函数创建相关日志文件,方便后现场环境续定位问题。


问题描述

调用fopen等一系列i函数,结果设备烧完底层再升级大包,出现段错误,导致升级失败。

下面是串口调试信息:

M2RU-C login: 
PetaLinux 2019.2 M2RU-C /dev/ttyPS0

M2RU-C login: 
PetaLinux 2019.2 M2RU-C /dev/ttyPS0

M2RU-C login: dasUse/drgfly/etc/usrapp.sh: line 8:  2346 Segmentation fault      /drgfly/app/ARM

原因分析:

/************************* 设备日志 *******************************/
#define DEVICELOG_EN            1
#define MONITOR_DIR            "/drgfly/webomt/web/www/LogFiles/DeviceLog/" 
#define TXT_LOG_NAME           "DeviceTxt.log" 
 

void OpenLogFile(void)
{
    LogFile = fopen((char *)(MONITOR_DIR TXT_LOG_NAME), "a");
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值