如何为内核文件系统和用户程序创建共享头文件?

How to create shared header file for kernel filesystem and user program?

我应该在什么路径包含一个需要被 linux 内核自定义文件系统和用户程序访问的头文件?

现有的文件系统驱动程序将它们的 headers(也供用户 space 使用)放在 include/uapi/linux/ 下。在这里您可能会找到 jffs2.hbtrfs.h 和许多其他 filesystems-related headers.

这些 headers 旨在包含在

#include <linux/xxx.h>

这自动适用于内核。

对于用户,这也适用,在您使用 make headers_install 安装 "uapi" headers 后,针对新的 headers 重建 C 库 (libc),并针对新的 C 库重建 gcc。否则,您需要复制所需的 headers 并手动调整包含目录。