运行
之类的东西时File.read "/proc/cpuinfo"
>> {:ok, ""}
相同的erlang函数相同。这种模式有什么理由吗?
答案 0 :(得分:8)
就像@José提到的那样,proc fs很特殊,因为文件内容是动态生成的。如果您查看/ proc中的文件大小,您会看到它们的大小为JFrame
。
我相信这就是为什么0
函数无法返回任何内容,文件为空!
解决方法是强制读取多个字节,在Erlang中你可以这样做:
read
要读取所有内容,请继续读取固定的字节数,直到{ok, FD} = file:open("/proc/cpuinfo", [read]).
file:read(FD, 1024).
返回EOF。
答案 1 :(得分:4)
proc中的条目存在于一个名为procfs的特殊文件系统下,我相信Erlang不支持从中读取。更多信息:https://unix.stackexchange.com/questions/121702/what-happens-when-i-run-the-command-cat-proc-cpuinfo