【发布时间】:2014-09-03 21:22:13
【问题描述】:
我无法修改的程序将其输出写入作为参数提供的文件。我想让输出进入 RAM,这样我就不必做不必要的磁盘 IO。 我以为我可以使用 tmpfs 并“欺骗”程序来写入它,但并非所有 Linux 发行版都将 tmpfs 用于 /tmp,一些在 /run(Ubuntu)下安装 tmpfs,其他在 /dev/shm(RedHat)下。 我希望我的程序尽可能可移植,如果可以避免的话,我不想在用户系统上创建 tmpfs 文件系统。 显然我可以做 df | grep tmpfs 并使用返回的任何安装,但我希望有一些更优雅的东西。 是否可以写入伪终端或 /proc 某处?
【问题讨论】:
-
由于 Linux 的磁盘缓存,它可能无论如何都会进入 RAM。
-
既然你已经标记了这个问题
python,那么stringIO呢?基本上,它允许您将字符串变量用作文件。 -
这是针对您正在编写的程序,还是已经编写的您无法修改的程序?你的问题在这个问题上是矛盾的。
-
我正在编写一个重复调用另一个程序的 python 程序。 StringIO 不起作用,我从脚本调用的程序正在获取要写入的文件的位置,而不是实际的文件句柄。
-
PyFilesystem 可能很适合。 docs.pyfilesystem.org/en/latest/tempfs.html#module-fs.tempfs 基本上你正在尝试创建一个用户空间 ramdisk。不过,我仍然会尝试查找已安装的 tmpfs。 (例如 mount | egrep -wi "tmpfs" | egrep -iv "/sys" | egrep "755" )