Re: (un)mount ramfs from C code

From: Brian McGrew
Date: Tue Sep 22 2009 - 15:30:29 EST


> You mean without using system(3), right? System call is how your program
> interacts with the outside world.
>
> The relevant system calls are:
> - mount(2): mount("none", "/mnt", "ramfs", 0, NULL);
> - umount(2): umount("/mnt");
>

Thanks for the help! I'm getting there. Considering the following:

If (mount("ramfs", rd_path, "ramfs", MS_NOEXEC | MS_NOSUID, "size=2000m") <
0) {
strerror(errno);
} else {
std::cout << "mounted";
}

Works great! Thank you. However, even though the filesystem is mounted and
/bin/mountpoint confirms it's a mountpoint, I do not see the mountpoint
listed in /etc/mtab.

Also, according to what I've read about ramfs, the size is supposed to be
limited to size=, however, I can cat /dev/zero until the box it out of
memory (and swap).

I think I'm just missing something and google's not helping a whole lot
since ramfs isn't the most popular subject today.

Thanks,

-b

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/