Проверьте новый Механизм исполнения безопасности (бета вышла 14 ноября):
http://blogs.msdn.com/cisg/archive/2008/10/24/a-sneak-peak-at-the-security-runtime-engine.aspx
http://blogs.msdn.com/cisg/archive/2008/11/13/an-update-on-some-upcoming-free-tools.aspx
Это должно заменить текущую библиотеку Anti-XSS.
Anthony:-) www.codersbarn.com
В стандарте говорится о errno
:
Значение errno равно нулю при запуске программы, но никогда не устанавливается в ноль какой-либо библиотекой. функция. Значение errno может быть установлено в ненулевое значение при вызове библиотечной функции независимо от того, есть ли ошибка, при условии, что использование errno не задокументировано в описании функции в этом международном стандарте.
который говорит мне, что любой библиотечная функция может работать с errno
любым способом, кроме:
errno
на 0
Обратите внимание, что стандарт предлагает следующее в сноске:
Таким образом, программа, которая использует
errno
для проверки ошибок, должна установить его в ноль перед вызовом библиотечной функции , затем проверьте его перед последующим вызовом библиотечной функции. Конечно, библиотечная функция может сохранять значениеerrno
при входе, а затем устанавливать его на ноль,
Почти все библиотечные функции posix могут устанавливать значение errno в случае возникновения ошибки, то есть когда функция возвращает -1. Исключением являются функции потоковой передачи, поскольку установка одной глобальной переменной ошибки из нескольких потоков была бы очень опасной. В случае успеха они возвращают 0, в противном случае - код ошибки (этот код совместим с errno, поэтому вы можете использовать для него функции strerror и perror).
@Adam, as Neil said, any function can be compiled against errno.h and set errno. It is by definition, impossible to list all utilities that have been compiled in this way to use the core errno functionality.
That said, there are several ways that errors may be reported back to a user. Using errno is just one.
Вы можете использовать свой любимый редактор и функцию «Найти в файлах ...» для поиска файлов, содержащих ключевое слово errno
.
Уместным вопросом может быть каковы значения
errno
может получить и что каждое из них означает. Вы можете увидеть их в intro (2)
.
Вы должны предположить, что любая функция может устанавливать errno, а не только те, которые находятся в стандартной библиотеке. Поэтому список был бы немного бессмысленным.