我对 linux 操作系统很陌生,所以我正在尝试设计一个共享库,女巫将启动一个线程,我有以下代码:
函数 init_log 不会引发分段错误,它不会在日志中显示注释,但有人可以告诉我为什么吗?
函数 pthread_create 引发了一个分段错误,我使用 derror() 在日志中打印它!
void __attribute__ ((constructor)) setup();
void init_log()
{
setlogmask(LOG_UPTO(LOG_NOTICE));
openlog("TRACKER",LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
}
void loop()
{
while (0 == 0)
{
syslog(LOG_NOTICE,"OK BOSS");
sleep(1000);
}
}
void setup()
{
pthread_t thread_id;
init_log();
syslog(LOG_NOTICE,"LIB LOADED"); // this doesn't display
pthread_create(&thread_id,0,&loop,(void*)(NULL));
}
编译器链接器参数
**** Build of configuration Debug for project gt_trackers ****
make all
Building target: libgt_trackers.so
Invoking: GCC C Linker
gcc -shared -o "libgt_trackers.so" ./main.o
Finished building target: libgt_trackers.so
**** Build Finished ****