我正在关注一个示例FUSE Tutorial以了解FUSE如何在linux中运行。在该示例中,所有动态数据都使用malloc分配,并作为用户数据传递给fuse_main
函数。以后可以访问此数据以进行任何保险丝调用。这些调用不必来自同一个过程。这是如何工作的?
为了使问题更清楚,
我用bbfs
运行主../src/bbfs rootdir mountdir
程序来挂载文件系统。在bbfs.c的main()中调用malloc。 bbfs程序还定义了几个fuse函数调用。但是这个程序在安装文件系统后退出。
如何在挂载的文件系统上调用read()
或open()
的其他程序(或内核)
1.如果bbfs程序已经退出,则使用malloc分配的内存?在程序bbfs
退出后,操作系统是否会释放使用malloc分配的内存?
2.访问定义的函数,如果定义它们的进程已经退出?退出流程后,保险丝功能的object code
会驻留在哪里?
我对目标代码和堆内存对象的生命周期以及其他程序(或内核)以后如何使用它感到困惑。任何帮助或指示将不胜感激。
答案 0 :(得分:2)
您的大部分问题都基于错误的假设:
...但是[FUSE服务器]在安装文件系统后退出。
它实际上根本没有退出。只要安装了文件系统,它就会进入后台并继续运行。
当它正在运行时,一切正常。