Когда open () не работает с EAGAIN? - PullRequest
0 голосов
/ 07 июня 2018

Я вижу ошибки при открытии файла с помощью системного вызова open ().При запросе последней ошибки я вижу 11, EAGAIN (EWOULDBLOCK).Я не вижу эту ошибку каждый раз, но периодически.

Я не мог понять, почему я получаю ошибку.Я уверен, что файл только изменен мной на этом этапе.Поэтому я хотел знать, в каких сценариях мы можем увидеть сбои EAGAIN.

Есть ли способ протоколировать логи ядра Android, чтобы получить более подробную информацию об этих сбоях?

**************** Обновление ********************

Я добавил механизм повтора, и после этого мои попытки такжене удалось, но с ошибкой File_NOT_FOUND, и теперь это имеет смысл для меня.Я думаю, что какое-то заднее занятие должно удерживать, а затем удалять.

1 Ответ

0 голосов
/ 07 июня 2018

Вот что говорит man-страница: EAGAIN Дескриптор файла fd ссылается на файл, отличный от сокета, и был помечен как неблокирующий (O_NONBLOCK), и чтение будет блокироваться.

EAGAIN Ресурс временно недоступен (может иметь то же значение, что и EWOULDBLOCK).

Итак, попробуйте еще раз.

...