Несколько функций в стандартной библиотеке C возвращают целое число «код ошибки» в качестве результата. Поскольку noErr определено как 0, быстрой проверкой может быть «если это 0, это нормально». То же соглашение относится к процессу Unix '' код результата '; то есть целое число, которое указывает на то, как завершился данный процесс.
В сценариях оболочки Unix доступен код результата только что выполненной команды, который обычно используется для обозначения, была ли команда «успешной» или нет, где 0 означает успешное выполнение, а все остальное - конкретное неуспешное условие.
Исходя из этого, все подобные тестовые конструкции в сценариях оболочки используют «успех» (т. Е. Код результата 0) для обозначения ИСТИНА, а все остальное для обозначения ЛОЖЬ.
В совершенно другой плоскости цифровые схемы часто используют «отрицательную логику». то есть, даже если 0 вольт называется «двоичным 0», а некоторое положительное значение (обычно + 5 В или + 3,3 В, но в настоящее время нередко используется + 1,8 В) называется «двоичным 1», некоторые события «утверждаются» по данному выводу, равному 0. Я думаю, что есть некоторые устойчивые к шуму преимущества, но я не уверен в причинах.
Заметьте, однако, что в этом нет ничего «древнего» или какого-то «времени переключения». Все, что я знаю об этом, основано на старых соглашениях, но полностью актуально и актуально сегодня.