Ваша реализация может содержать больше ошибок, как, например,

ользую системный вызов, и в случае сбоя мне нужно делать разные вещи для разных ошибок.

Мне нужно написать код, который выглядит примерно так:

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 заявление для того, чтобы проверить ошибку?

Ответы на вопрос(3)

Ваш ответ на вопрос