2012-01-23 3 views
1

У меня есть мой код, запущенный в Linux. Я вижу, что моя программа прерывается, когда NULL передается функции strchr(). По-видимому, это не происходит при работе в AIX.Что делать, если NULL передается в strchr()

Может ли кто-нибудь сказать, почему это различие в поведении для strchr()?

Благодаря

+1

Какой язык программирования вы используете? Эта функция существует на серверных языках .. – rauschen

+0

Язык программирования, который я использую, это C++ –

ответ

0

Поскольку спецификации для strchr() не определяет «правильное» поведение, когда прошло NULL, поэтому различные реализации свободны, а, реализовать его по-разному для этого случая. (Любопытно: что возвращает версия AIX при передаче NULL?)

+0

В AIX при передаче NULL в strchr() он возвращает NULL, и программа запускается без прерывания. –

+3

Точнее, поведение не определено, поэтому реализации не обязательно должны быть последовательными. Либо сбой, либо возврат NULL соответствуют поведению. Таким образом, демоны вылетают из вашего носа. –

Смежные вопросы