pthread_kill (0,0) вылетает

Это мой первый вопрос здесь (как вы, вероятно, можете сказать по плохому форматированию вывода GDB ниже: ^}, и это может быть не тот форум ?? ...

Использование Ubuntu 14.04, вызов pthread_kill (0,0) вызывает SIGSEGV. Страница man говорит, что pthread_kill () может использоваться для определения, существует ли поток. Я должен упустить что-то чрезвычайно простое. Я понимаю, что фактическое определение / формат / структура pthread_t непрозрачно (Зависит от ОС), но, похоже, это должно сработать, а в худшем случае вернуть ESRCH. Пожалуйста, поправьте меня. Подробности следуют:

int
main (int arcg, char *argv[])   
{
    pthread_kill((pthread_t)0,0);
    return 0;
}

gcc -g -pthread test_pthread_kill.c -otest_pthread_kill

test_pthread_kill

Segmentation fault (core dumped)
0
задан 13 August 2015 в 01:15

1 ответ

используйте pthread_create(&tid,...), тогда вы получите допустимое значение pthread_t для передачи. Или используйте свой собственный тид:

pthread_kill(pthread_self(),0);
0
ответ дан 13 August 2015 в 01:15

Другие вопросы по тегам:

Похожие вопросы: