Почему WIFEXITED возвратил бы True на рабочем процессе?

В Отладка Приложения Microsoft.NET 2.0 у John Robbins есть большой раздел по утверждениям. Его основные моменты:

  1. Утверждают подробно. У Вас никогда не может быть слишком многих утверждений.
  2. Утверждения не заменяют исключения. Исключения покрывают вещи Ваши требования кода; утверждения покрывают вещи, которые это принимает.
  3. А правильно написанное утверждение может сказать Вам не, что произошло и где (как исключение), но почему.
  4. сообщение об исключении может часто быть загадочным, требуя, чтобы Вы работали назад через код для воссоздания контекста, который вызвал ошибку. Утверждение может сохранить состояние программы в то время, когда ошибка произошла.
  5. Утверждения удваиваются как документация, говоря другим разработчикам, от каких подразумеваемых предположений Ваш код зависит.
  6. диалоговое окно, которое появляется, когда утверждение сбои позволяет Вам присоединить отладчик к процессу, таким образом, можно ввести по абсолютному адресу вокруг стека, как будто Вы поместили точку останова там.

пз: Если Вам понравился Завершенный Код, я рекомендую развить его с этой книгой. Я купил его для приобретения знаний об использовании WinDBG и файлов дампа, но первая половина упаковывается подсказками, чтобы помочь избежать ошибок во-первых.

7
задан Kyle Brandt 29 October 2009 в 11:58
поделиться

1 ответ

Как вы указали WNOHANG Я думаю, waitpid возвращает 0 , а pstatus имеет значение было раньше, поэтому WIFEXITED не работает с обновленными данными.

, если WNOHANG был указан и один или несколько дочерних (рен) указанный pid существует, но еще не изменил состояние, то возвращается 0 .

6
ответ дан 7 December 2019 в 07:46
поделиться
Другие вопросы по тегам:

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