Cat 无法访问 openSuse Tumbleweed 中的文件(“参数无效”错误)

Cat 无法访问 openSuse Tumbleweed 中的文件(“参数无效”错误)

我刚刚安装了最新版本的 openSuse Tumbleweed,并正在浏览文件系统以熟悉它,这时我在 /dev/lightnvm 中发现了一个名为“control”的文件。我尝试cat在文件 ( ) 上运行cat control,但是当我这样做时,出现以下错误:

cat: control: Invalid argument

我应该拥有访问该文件的所有适当权限。关于为什么我无法查看“控制”文件的内容有什么想法吗?

答案1

c输出第一列中的表示ls这是一个字符设备文件。它不是一个常规文件,并且没有真正的“内容”。

当您打开并读取常规文件时,内核会运行标准代码,从硬盘驱动器(或类似存储)中获取文件的数据。但是当您访问设备文件时,内核会运行特定于该设备的代码(“设备驱动程序”)。显然,lightnvm 设备驱动程序的作者设计的代码使得从该特定设备读取数据没有意义,因此他们的代码表示尝试这样做应该会失败并出现错误。

(最有可能的是,需要使用此设备的代码应该写入该文件 - 名称control表明您应该写入该文件以向设备发送命令。它也可能既不被读取也不被写入,但是使用ioctl()系统调用访问。)

/dev除非您真的知道自己在做什么,否则弄乱 中的“文件”通常不是一个好主意。写入任意设备文件可能非常危险;例如,echo hello >/dev/sda会使您的系统无法启动,并且很难恢复您的文件。在某些情况下,即使读取设备文件也可能很危险,或者至少会导致意外行为。

相关内容