Você só pode escrever inteiros não negativos para este arquivo porque é um arquivo especial e o kernel rejeita qualquer outra entrada. Não é um arquivo especial no sentido de ter um tipo de arquivo especial, mas é um arquivo especial porque está em um sistema de arquivos especial. Quando você acessa um sistema de arquivos “normal”, o kernel armazena o conteúdo do arquivo em um disco sem interpretá-lo. Mas quando você acessa arquivos em /proc
( procfs ) ou /sys
(sysfs ), os dados não são armazenados em um disco, o acesso invoca o código do kernel personalizado. Para um arquivo como /sys/class/backlight/intel_backlight/brightness
, esse código personalizado deseja um número inteiro entre 0 e algum máximo dependente de hardware e, se você tentar gravar qualquer outra coisa, a chamada write
falhará com o status de erro EINVAL.