Я использовал по местному времени на моем BeagleBone Black на время штампа событий. Я запускаю многопоточное приложение и понял, что localtime не является потокобезопасным. Поэтому я переключился на localtime_r, и это вызывает ошибку сегментации . Пожалуйста, прикрепите изображение.Как решить локальную ошибку сегментации localtime_r?
- я выполнил ту же программу на моем рабочем столе, который система x86_64 с другой версией ядра Linux, и она работает. Попробовал снова с другой 64-разрядной системой с более новым ядром, и это не сработает.
- Не нашли много публикаций в Интернете по этой проблеме. This имеет некоторую информацию, но не ясен.
Любые предложения по тому, как я могу это решить? Не уверен, почему он работает на некоторых системах, а не на других.
Update 1: Я отправил код
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include <stdbool.h>
int main(){
int day, month, hour, minute, second, year;
time_t t = time(NULL);
struct tm *result;
struct tm *tm = localtime_r(&t, result);
day = result->tm_mday;
month = (result->tm_mon+1);
hour = result->tm_hour;
minute = result->tm_min;
second = result->tm_sec;
year = (result->tm_year-100);
printf("%d : %d : %d : %d:%d:%d\n", month, day, year, hour, minute, second);
return 0;
}
Было бы лучше, если бы вы могли бы разместить свой код здесь. – sas
Написал код. – am3