Почему метод чтения из класса File вызывает Errno :: EPERM при попытке чтения / dev / mem от имени пользователя root с соответствующими разрешениями? - PullRequest
0 голосов
/ 07 февраля 2019

Я вошел в систему как пользователь root, чтобы поиграться с /dev/mem с Ruby 2.6.0 в Arch Linux.

Это работает, когда я пишу:

File.open('/dev/mem', 'r') { |x| puts x.readpartial(50) }

Или:

File.open('/dev/mem', File::RDONLY) { |x| puts x.readpartial(50) }

Но это вызывает Errno::EPERM (Operation not permitted @ io_fread - /dev/mem), когда я пытаюсь:

File.read('/dev/mem')

Или:

File.open('/dev/mem', File::RDONLY) { |x| puts x.read }

Почему метод чтения из класса File не может 't читать / dev / mem, а readpartial может?

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