1
可以在多線程中使用sigqueue代替pthread_kill()
,因爲我想在sigqueue中使用(const union sigval value
)。我的linux沒有pthread_sigqueue()
。sigqueue可以和pthreads一起使用嗎?
可以在多線程中使用sigqueue代替pthread_kill()
,因爲我想在sigqueue中使用(const union sigval value
)。我的linux沒有pthread_sigqueue()
。sigqueue可以和pthreads一起使用嗎?
在Linux下,可以使用系統調用gettid()
從內核中拉出特定線程pid_t
,然後系統調用可以與sigqueue()
一起使用。然而,這是Linux專用且非常難以移植的。
由於gettid()
最有可能無法通過您的Linux」可用的libc你可能會喜歡用下面的代碼來實現:
#define _GNU_SOURCE
#include <unistd.h>
#include <sys/syscall.h>
#include <sys/types.h>
pid_t gettid(void)
{
return syscall(SYS_gettid);
}