Ваша реализация может содержать больше ошибок, как, например,
ользую системный вызов, и в случае сбоя мне нужно делать разные вещи для разных ошибок.
Мне нужно написать код, который выглядит примерно так:
int res;
res = systemCall();
if (res == -1)
{
if (errno == ENOMSG)
{
doSomething();
}
else
{
doSomethingElse();
}
}
Perror не помогает, потому что он печатает только значение.
Что касается strerro - если это то, что мне нужно, я не suer, как его использовать, потому чтоВот он говорит, что фактическая строка не совпадает с ошибкой. Цитата со страницы руководства: "(Например, если errnum равен EINVAL, возвращаемое описание будет" Недопустимый аргумент ")".
Я использую Linux. Системные вызовы: msgsend и msgrcv (https://linux.die.net/man/2/msgrcv). Я не уверен, о каких библиотеках C вы спрашиваете.
Я вижу, я не объяснил себя хорошо.
Является ли утверждение if (errno == ENOMSG) действительным? Есть ли такая переменная errno? В основном мой вопрос: что должно идти вif
заявление для того, чтобы проверить ошибку?