Как использовать errno в C++
Я не могу понять, какого errno библиотека на C++ для? Какие типы ошибок установлены в нем и как узнать, какое число означает какую ошибку?
влияет ли это на выполнение программы?
1 ответов
errno.h является частью подмножества C C++. Он используется библиотекой C и содержит коды ошибок. Если вызов функции завершается неудачно, переменная "errno" устанавливается соответственно ошибке.
Это будет бесполезно, если вы используете стандартную библиотеку C++.
В C у вас есть функции, которые переводят коды errno в C-строки.
например, в C он работает следующим образом:
int result = call_To_C_Library_Function_That_Fails();
if( result != 0 )
{
char buffer[ 256 ];
char * errorMessage = strerror_r( errno, buffer, 256 ); // get string message from errno
// ...
}
Вам может понадобиться это, конечно, в C++, когда вы используете с библиотека или библиотека ОС, которая находится в C. Например, если вы используете sys/socket.H API в системах Unix.
С C++, если вы делаете оболочку вокруг вызова C API, вы можете использовать свои собственные исключения C++, которые будут использовать errno.h чтобы получить соответствующее сообщение из кодов ошибок вызова C API.