Тестовые примеры на C для WIFSIGNALED, WIFSTOPPED, WIFCONTINUED
Работать с WIFSIGNALED очень signal просто. Дочерний процесс signals может совершить самоубийство signal с помощью системного вызова waitpid kill()
. Вы также можете проверить c наличие дампов ядра - их signals создают некоторые сигналы signals (SIGQUIT, IIRC); некоторые signal сигналы - нет (SIGINT).
Обработка signals WIFSTOPPED может быть сложнее. Самый c простой шаг, который нужно signals попробовать, - это снова signal отправить самому себе SIGSTOP signals с системным вызовом kill()
. На signals самом деле, я думаю, это signals должно сработать. Обратите signals внимание, что вы можете проверить waitpid SIGTTIN, SIGTTOU и SIGTSTOP signal - я считаю, что они учитываются waitpid для WIFSTOPPED. (Также есть signal вероятность, что SIGSTOP waitpid работает нормально только signals тогда, когда отладчик отправляет waitpid его процессу через системный c вызов, не относящийся к POSIX, ptrace()
.)
Обработка waitpid WIFCONTINUED - это то, что, я c думаю, должен делать родитель; после waitpid того, как вы обнаружите, что signal процесс был остановлен, ваш waitpid вызывающий код должен продолжить c его, отправив ему сигнал signal SIGCONT (снова kill()
). Ребенок waitpid не может доставить это сам; это signal было остановлено. Опять же, я signals не уверен, стоит ли беспокоиться signal о лишних морщинах - возможно.
c
signals
waitpid
Тестовые примеры на C для WIFSIGNALED, WIFSTOPPED, WIFCONTINUED
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.