Не удается прочитать стандартный файл – блок операций ввода-вывода

Я пишу программу, которая просматривает все файлы на устройстве Android, ища определенную строку. Через несколько секунд после этого процесса я застрял в следующем файле:

/ SYS / мощности / wakelock_count

Я попытался использовать grep , функцию C fopen , а также другие альтернативы, и все они блокируются в этом файле – они просто не возвращаются. Его размер составляет ровно 4096 байт, но с использованием stat или ls -l файл сообщается как обычный файл – без символической ссылки, нет файла устройства. Я проверил открытые дескрипторы – этот файл открывается системой system_se , что также позволяет удерживать дескрипторы десятков других файлов, которые я, однако, могу читать просто отлично. Я также проверил блокировки, и нет никаких MANDATORY- блокировок, которые предотвратили бы доступ к чтению.

Что такого особенного в этом файле и как я могу его прочитать или пропустить?

EDIT: Я выполняю все операции как SU.

EDIT2: ls -ld результат:

-rw-r--r-- 1 system system 4096 1971-10-10 21:59 wakeup_count 

One Solution collect form web for “Не удается прочитать стандартный файл – блок операций ввода-вывода”

Обратите внимание, что /sys/power/wakeup_count не является «обычным» файлом, потому что он не находится в «обычной» файловой системе. Это почти наверняка в файловой системе «sysfs-power», которая похожа на файловую систему «proc», поскольку она не представляет ничего подобного файлам на дисках.

В документации файловой системы sysfs-power :

 What: /sys/power/wakeup_count Date: July 2010 Contact: Rafael J. Wysocki <rjw@rjwysocki.net> Description: The /sys/power/wakeup_count file allows user space to put the system into a sleep state while taking into account the concurrent arrival of wakeup events. Reading from it returns the current number of registered wakeup events and it blocks if some wakeup events are being processed at the time the file is read from. Writing to it will only succeed if the current number of wakeup events is equal to the written value and, if successful, will make the kernel abort a subsequent transition to a sleep state if any wakeup events are reported after the write has returned. 

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

Тем не менее, вполне возможно, что вы можете столкнуться с этой ошибкой: Чтение из / sys / power / wakeup_count вешает бесконечно. Это почти то же самое, что вы описываете.

  • Есть ли разница между read, head -1 и sed 1q?
  • Bash: интерактивное дистанционное приглашение
  • Shell scripting помогает текстовому файлу в массив
  • Символ ложных @ в начале подсказки bash в Debian Jessie
  • Как читать с другого терминала?
  • while цикл работает только один раз?
  • Понимание встроенного чтения
  • Длина строки режима чтения в приглашении bash
  • Как подавить эхо функции проверки ошибок
  • используйте команду «читать» для передачи строк в качестве позиционных параметров в сценарий оболочки
  • Как использовать пользовательский ввод как условие цикла while
  • Interesting Posts

    linux http proxy с веб-ускорителем

    nmap не будет распознавать имя хоста в моей локальной сети

    Как ядро ​​решает, какие страницы совершают обмен?

    WiFi не работает должным образом в Ubuntu 14.04 LTS на Macbook Pro

    сценарий оболочки для добавления идентификатора для команды newusers

    Literal ia32-libs в 2017 году

    Bash автоматически перезагружает (впрыскивает) обновления в исполняемый скрипт при его сохранении: Почему? Любое практическое применение?

    Символы powerline urxvt

    cp: не может stat `/vol/examples/tutorial/science.txt ': нет такого файла или каталога

    du – игнорировать файл не найден

    Знайте имя драйвера для использования на CUPS gui

    Является ли чтение файла в UNIX быстрее, чем запись файла?

    Установите файловую систему samba в RHEL 5.5

    Различные способы выполнения сценария оболочки

    Где я должен поместить скрипт, который должен выполняться один раз, когда пользователь регистрируется в графическом режиме?

    Linux и Unix - лучшая ОС в мире.