在linux上用C++创建一个ramdisk



我需要制作一个ramfs,并使用c++将其挂载到linux中的一个目录。我想让它像一个用户(没有sudo)。

我需要在我创建的文件上调用一个应用程序,这将是经常的。将其写入HDD的速度非常慢。

我发现:

system("mkdir /mnt/ram");
system("mount -t ramfs -o size=20m ramfs /mnt/ram");

但这并不好。我想成为一个普通用户,并且命令mount可以作为root调用。我能做什么?

对于用户空间ramfs解决方案,可以使用python fuse ramfs。

我检查/tmp是否是ramfs,但它不是。它在硬盘上创建文件。但当我运行df -h时,它输出:

rootfs                       25G  9,4G   15G  40% /
devtmpfs                    1,9G     0  1,9G   0% /dev
tmpfs                       1,9G  1,6G  347M  83% /dev/shm
tmpfs                       1,9G  1,3M  1,9G   1% /run
/dev/mapper/vg_micro-root    25G  9,4G   15G  40% /
tmpfs                       1,9G     0  1,9G   0% /sys/fs/cgroup
tmpfs                       1,9G     0  1,9G   0% /media
/dev/mapper/vg_micro-stack  289G  191M  274G   1% /stack
/dev/mapper/vg_micro-home   322G   40G  266G  14% /home
/dev/sda2                   485M   89M  371M  20% /boot
/dev/sda1                   200M   19M  182M  10% /boot/efi

这意味着tmpfs(ramdisks)是:/dev/shm/run/sys/fs/cgroup/media。但其中只有一个是临时ramdisk,用于进程之间的通信,使用文件。以下是/dev/shm的描述和用法。唯一的问题是tmpfs不会动态增长,但就我的目的而言,它已经足够了(20MB-1GB)。

最新更新