¿Cómo verificar el valor de errno?
Estoy usando una llamada al sistema y en caso de que falle, necesito hacer cosas diferentes para diferentes errores.
Necesito escribir un código que se vea así:
int res;
res = systemCall();
if (res == -1)
{
if (errno == ENOMSG)
{
doSomething();
}
else
{
doSomethingElse();
}
}
Perror no ayuda, porque solo imprime el valor.
En cuanto a strerro, si es lo que necesito, no estoy seguro de cómo usarlo, porqueaquí dice que la cadena real no es la misma que el error. Cita de la página de manual: "(Por ejemplo, si errnum es EINVAL, la descripción devuelta será" Argumento no válido ")".
Estoy usando Linux Llamadas del sistema: msgsend y msgrcv (https://linux.die.net/man/2/msgrcv) No estoy seguro de qué bibliotecas C está preguntando.
Ya veo que no me expliqué bien.
¿Es válida la declaración if (errno == ENOMSG)? ¿Existe tal variable errno? Básicamente mi pregunta es: ¿Qué debería ir en elif
declaración para probar el errno?