在 C 程序中创建导致 SEG 错误的文件名



这是我程序中一个名为prv_instance_t的结构,其中包含此处定义的experiment_id

从这个experiment_id变量中,我想创建另一个名为serial_log的变量,它存储来自UART的串行数据。我希望在线程中处理它。我通过将"_serial_log.txt"附加到experiment_id来创建串行数据的文件名,如下所示。

int function() { 
prv_serial_logging_thread_params_t serial_logging_thread_params;
targetP = (prv_instance_t *)lwm2m_list_find(objectP->instanceList, instanceId);

然后,我使用 pthread 创建一个线程。

我遇到了 seg 错误,我可以以更好的方式创建文件名吗,也许我导致缓冲区溢出?

serial_logging_thread_params是一个局部变量。它将超出范围并在函数返回后消失。如果在线程仍在运行时发生这种情况,则指向结构的指针将变为无效。

使用 malloc 动态分配结构。

相关内容

  • 没有找到相关文章

最新更新