错误:错误的文件描述符,对日志文件的多次写访问

时间:2019-07-18 12:05:27

标签: c linux embedded

我具有不同的功能(用于不同的数据类型)来写入一个日志文件。每秒调用一次这些函数以进行输入。 一段时间后,程序崩溃了

ret = fprintf(fptr_LogFile, "%s %f\n", buffer, f);与:

  

“双重释放或腐败(出局)”“中止(核心被弃用)”。

使用strerror(errno)我得到了错误描述:

  

错误:文件解密器错误。

static FILE *fptr_LogFile;

void write_log(char *buffer)
{

fptr_LogFile = fopen(filename, "a");    
if(fptr_LogFile == NULL)
{
    // Log Entry
    // do something
    return;
}

ret = fprintf(fptr_LogFile, "%s", buffer);
if (ret < 0)
{
    // Log Entry
    // do something
}

ret = fclose(fptr_LogFile);
system("exec sync");
if (ret != 0)
{
    // Log Entry
    // do somthing
    }

}


void write_log_f(char *buffer, float f)
{
 fptr_LogFile = fopen(filename, "a");
 if(fptr_LogFile == NULL)
 {
    // Log Entry
    // do something
    return;
 }

ret = fprintf(fptr_LogFile, "%s %f\n", buffer, f);
if(ret < 0)
{
    // Log Entry
    // do something
}

ret = fclose(fptr_LogFile);
system("exec sync");
if (ret != 0)
{
    // Log Entry
    // do something
}

}

有人可以帮助我发现我的错误吗?非常感谢您的帮助。

0 个答案:

没有答案