什么 API 将允许我实现一个 linux 文件系统,它知道哪个进程正在访问它?

What API will allow me to implement a linux filesystem which is aware of which process is accessing it?

我想实现一个 linux 文件系统,无论是使用 FUSE 还是作为内核模块,它都知道正在查看它的进程,以便它可以根据需要定制文件系统的内容访问进程。

这种行为的具体示例在 /proc/self 中,它是 /proc/PID 的符号链接,其中 PID 是当前进程的 PID。

是否有允许我执行此操作的 FUSE 或内核 API?

/proc/self 的实现在这里:

https://github.com/torvalds/linux/blob/v4.3/fs/proc/self.c

它使用了各种内部内核 juju,所以 FUSE 可能是不可能的。

fuse-devel 邮件列表中乐于助人的人向我指出了一个答案:

fuse_req_ctx() in fuse_lowlevel.h returns 当前请求的fuse_ctx结构体,其中包含线程id、组id和用户id。