errno всегда возвращает ноль в VxWorks PPC - PullRequest
0 голосов
/ 26 марта 2010

Я выполняю свой код на VxWorks PPC и в случае сбоев системного вызова, особенно для функций отправки / записи через сокет, errno всегда возвращает 0.

После некоторого анализа я обнаружил, что errno возвращает 0 в случае всех сбоев системных вызовов.

Есть ли какая-либо инициализация, которую я должен сделать, чтобы errno вернул правильные значения?

Ответы [ 2 ]

1 голос
/ 04 мая 2010

Из оболочки (ядра или хоста), если вы введете команду 'i', вы получите список ваших задач. Одним из полей является значение errno. Найдите задачу с ошибкой, и значение errno должно быть установлено.

При проверке errno вы ДОЛЖНЫ быть в той же задаче, которая вызвала ошибку:

if(ERROR = someSystemFunction())
  printf("errno=%x", errno);

Вы не можете быть в оболочке и ожидать, что напечатаете errno

-> errno     (<---- will NEVER work)
errno:0x123455 value: 0 = 0x0
0 голосов
/ 18 июня 2010

errnoGet () вернет вам номер задачи, в которой она выполнена. См. Документацию по errnoLib для получения errno другой задачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...