почему fopen ()или open ()используют errno вместо того, чтобы просто возвращать код ошибки?

В обычном случае open()возвращает новый дескриптор файла или -1, если произошла ошибка, и в этом случае errnoустанавливается соответствующим образом.

Я не понимаю, почему здесь используется этот механизм errno? какова цель здесь? почему просто мы не можем сопоставить все ошибки с некоторым отрицательным возвратом нет?

нравится

fd = open("/dev/tty0", O_RDWR | O_SYNC);
if(fd == -1)
  printf("this is EACCES error");
else if (fd == -2)
    printf("this is EPERM error");

Есть ли какая-то польза от механизма errno? если да, то я хотел бы знать/понимать, что в других вещах я также могу использовать этот механизм.

9
задан Jeegar Patel 10 July 2012 в 12:30
поделиться