Так смотря что поток делает, если работает автономно то - да, а если как функция - нет, вед программе важен результат работы потока получить, если не получит - failed, что значит или выход из программы или - тебе повезёт, пробуй.
Это LOR, привыкай. Если ты создаешь тему с любым вопросом в секции Development, то первую страницу ответов можно смело проматывать, там будет только тупняк.
завершить порожденный процесс так чтобы waitpid его не дождался
А что он должен сделать вместо «дождаться»? Допустим ты подменил waitpid как тут предлагали. Убил процесс. Родитель не видит, продолжает ждать. Твои дальнейшие действия?
Коль скоро мы тут фантазируем, то можно ptrace-ить родителя и сделать много чего. Другое дело что постановка вопроса дурная, waitpid не узнал и тогда родитель делает что?
Коль скоро мы тут фантазируем, то можно ptrace-ить родителя и сделать много чего. Другое дело что постановка вопроса дурная, waitpid не узнал и тогда родитель делает что?
можно пропатчить ядро и намудрить с приоритетами потомка так что он более не исполняется, но и не остановлен, жив и держит ресурсы. С прикладной точки зрения почти всё равно что убит, и родительский процесс никогда ничего в waitpid не получит.
без патча ядра, можно «подвесить» потомок на каком-либо ожидании. На любом вызове - открытие файла, чтение..опять он всё равно что мёртв но сигналов не даст. Как сделать - по фантазии, от LD_PRELOAD до VFS.
Зачем ? это к ТС-у..может он так тесты гоняет и не уверен в waitpid.
Смотря как родитель про это узнаёт, вдруг он /proc парсит. Если очень хочется то можно от как уже сказали, от подмены функций и форкания внучек до правки ядра. В любом случае это будет наверное сугубо частный случай.