【发布时间】:2012-09-19 03:20:06
【问题描述】:
我需要制作一个 ramfs 并使用 c++ 将其挂载到 linux 中的目录。我想让它像一个用户(不是sudo)。
我需要在我创建的文件上调用应用程序,而且会经常调用。将其写入硬盘非常慢。
我刚刚发现:
system("mkdir /mnt/ram");
system("mount -t ramfs -o size=20m ramfs /mnt/ram");
但这并不好。我想成为一个普通用户,命令mount 可以作为root 调用。
我该怎么办?
【问题讨论】:
-
您可以将文件一次读入内存并仅操作内存中的表示。完成后,将其写回磁盘。
-
为什么不在
fstab文件中添加一个tmpfs 条目?添加user标志,以便用户可以按需安装它。或者只使用内存映射文件。 -
我想获得超级用户权限是唯一的方法。这可以通过一些 C++ 代码或使用 setuid 位授予您可执行的 root 权限来完成。
-
我的应用程序将写入一个文件,并在其上调用另一个应用程序。另一个应用程序会向这个文件写入一些魔法,我的应用程序会读取它等等。这是很常见的。这个应用程序将被分发,所以我不能希望所有将使用它的用户编辑 fstab。
-
您可能还想考虑在现实世界中对此进行基准测试,因为无论如何都会缓存 20 MB。那么 /tmp 呢,它是当今任何合理系统上的 ramdisk?
标签: c++ linux creation ramdisk