我发现FUSE用户空间库和内核接口已经从Linux开始,移植到许多其他系统,并提供了一个相对稳定的API,具有可能的小表面积.如果我想在用户空间中创建文件系统,而我不在计划9或赫德,我会认为FUSE是我的最佳选择.
但是,我不打算使用libfuse.这部分是因为实用主义; 使用C很难用我选择的语言(Monte).这也是因为我对编写C支持代码完全不感兴趣,并且libfuse的推荐用法与Monte哲学不兼容.这应该不是问题,因为C不是神奇的,并且可以使用标准系统调用打开/ dev/fuse.
然而,要找文件,我找不到.我没有找到/ dev/fuse ABI/API的文档,也没有其他人使用相同的非C-bound路由的故事.令人沮丧.
是否有任何类型的文档存在如何与语言无关的方式与/ dev/fuse和内核的FUSE子系统进行交互?如果是这样,你能指点我吗?谢谢!
更新:存在go-fuse,它在Go中,是一种比C更易读的语言.但是,它也不包含任何ABI/API文档.
更新:我注意到人们投票决定关闭此事.别担心,没有必要这样做.我对自己所希望的文档尚不存在感到满意.我将自己编写文档,发布它,然后在接受的答案中链接到它.希望下一个搜索此文档的人不会失望.
我有一个情况,如下:
我想找到所有n个列表中所有节点的部分排序,从开始节点开始到结束节点结束,这样任何出现在nx列表中的节点,其中x <n,将被排序相对于它出现的所有列表中的其他节点.
使用数组提供一组示例列表:
first = [a, b, d, f, h, i];
second = [a, b, c, f, g, i];
third = [a, e, f, g, h, i];
Run Code Online (Sandbox Code Playgroud)
显然,一个可能的答案是[a,b,c,d,e,f,g,h,i],但另一个可接受的顺序是[a,b,d,e,c,f,g,h,一世].
我知道,有是一个快速算法来做到这一点,没有任何人记得是怎么一回事呢还是它叫什么?我已经有一些慢版本,但我确信在Knuth的某个地方有一个更快的版本.
(而且,在你问之前,这不是为了家庭作业或项目欧拉,我不能使这更具体.这是问题.)
编辑:我相对确定只有端点在所有列表中并且位于相同位置(开始和结束)时才定义部分排序.我不会反对线性时间搜索来找到那些端点,如果找不到它们,那么就可以在那里产生错误.