gpt4 book ai didi

使用C程序挂载文件系统

转载 作者:行者123 更新时间:2023-12-01 16:02:19 25 4
gpt4 key购买 nike

在我的 initramfs.cpio 中,我只有这些目录:

root@localhost extract]# ls 
dev init tmp sys

dev 有控制台,sys 为空。

init 是与我在 Accessing GPIO after kernel boots 中讨论的程序相对应的二进制文件.

现在,在同一个 GPIO 程序中,我想编写代码来挂载/sys。我知道它可以使用 mount 来安装:

mount -t sysfs none /sys

如何编写一个 C 程序来实现上述行。请注意,我没有文件系统; initramfs.cpio 有空文件夹:/sys、/tmp。如果需要,我可以放置更多空文件夹。但我无法放置完整的文件系统。

我的主要意图使用此 program 访问 GPIO或其他方式,但不使用完整的文件系统。我不需要任何其他东西来运行,只是想要 GPIO 访问(和 LED 闪烁)

最佳答案

您使用mount(2)系统调用。从联机帮助页:

SYNOPSIS

  #include <sys/mount.h>

int mount(const char *source, const char *target,
const char *filesystemtype, unsigned long mountflags,
const void *data);

所以,在你的 C 代码中,它看起来像这样:

#include <sys/mount.h>

/* ... */

void mount_sys() {
if (0 != mount("none", "/sys", "sysfs", 0, "")) {
/* handle error */
}
}

(最后一个空字符串是您传递挂载选项的位置,但据我所知 sysfs 不接受任何选项。)

关于使用C程序挂载文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23211947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com