(Clojure新手)
在我的linux机器上,诽谤/proc/cpuinfo
会引发错误:
user=> (slurp "/proc/cpuinfo")
java.io.IOException: Invalid argument (NO_SOURCE_FILE:0)
有人知道为什么吗? (/ proc文件系统是Java中的某种二等公民吗?)
编辑:以下代码改编自nakkaya.com,完美无缺:
(with-open [rdr (java.io.BufferedReader.
(java.io.FileReader. "/proc/cpuinfo"))]
(let [seq (line-seq rdr)]
(apply print seq)))
我想知道为什么会出现这种差异?
答案 0 :(得分:5)
我在/ proc中遇到了类似的问题。解决方案很简单:
(slurp (java.io.FileReader. "/proc/cpuinfo"))
答案 1 :(得分:3)
问题是java无法在/ proc上打开DataInputStream,所以slurp函数不会帮助你,对不起:(
/ proc / cpuinfo有点奇怪,因为它的文件大小为零,并在读取时产生字节。这会扰乱更聪明的java文件处理类。
ls -l /proc/cpuinfo
-r--r--r-- 1 root root 0 2012-01-20 00:10 /proc/cpuinfo
请参阅此主题以获取更多http://www.velocityreviews.com/forums/t131093-java-cannot-access-proc-filesystem-on-linux.html
您将不得不使用FileReader打开它。我稍后会添加一个例子