这是我程序中一个名为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
动态分配结构。