使用clojure诋毁/proc/cpuinfo



(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)))

我想知道为什么会有这种差异?

我在/proc中的文件也遇到过类似的问题。解决方案很简单:

(slurp (java.io.FileReader. "/proc/cpuinfo"))

问题是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打开它。我将在位中添加一个示例

最新更新