小编Cor*_*bin的帖子

如何在不使用libfuse的情况下使用FUSE创建用户空间文件系统?

我发现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文档.

更新:我注意到人们投票决定关闭此事.别担心,没有必要这样做.我对自己所希望的文档尚不存在感到满意.我将自己编写文档,发布它,然后在接受的答案中链接到它.希望下一个搜索此文档的人不会失望.

linux fuse

15
推荐指数
1
解决办法
3844
查看次数

用于在多个链表上快速获得部分排序的算法

我有一个情况,如下:

  • 我有n个双向链表
  • 每个列表都有一个哨兵的开头和结尾
  • 列表都有相同的开始和结束节点(不是必需的,但为了简单起见)
  • 列表是同质的,可以共享项目

我想找到所有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的某个地方有一个更快的版本.

(而且,在你问之前,这不是为了家庭作业或项目欧拉,我不能使这更具体.这问题.)

编辑:我相对确定只有端点在所有列表中并且位于相同位置(开始和结束)时才定义部分排序.我不会反对线性时间搜索来找到那些端点,如果找不到它们,那么就可以在那里产生错误.

algorithm linked-list list

6
推荐指数
1
解决办法
246
查看次数

标签 统计

algorithm ×1

fuse ×1

linked-list ×1

linux ×1

list ×1