如何编写绑定到需要在Rust中打开文件句柄的C函数?

时间:2015-09-09 16:18:17

标签: rust ffi

我之前玩过在Rust中编写库绑定的玩具,这并不困难。但是,现在,我已经陷入困境:我试图为librsync编写绑定,并且它的一些函数希望您传递一个打开的文件句柄(C中的FILE* )。

对于原始类型,有一种直接的方法可以将它们传递给C,(对于指向原始类型的指针也是如此)。而且,要清楚,我知道libc crate实现了fopen,而mut FILE*又会给我一个FILE*(最终会完成这项工作)。但是,我想知道Rust标准库中是否有一些内容可以让我librsync传递给std::ffi::CString - 可能与 $floor_updates = $this->congress->floor_updates($params); foreach ($floor_updates as $update) { if ($update['bill_ids']) { foreach ($update['bill_ids'] as $bill => $bill_id) { $billInfo = $this->bill->billSearch(['bill_id' => $bill_id]); $floor_updates[$update]['bill_ids'][$bill][0] = $billInfo; } } } 类似。

1 个答案:

答案 0 :(得分:0)

cfilecrate docs)看起来像是实现io::Read/Write/Seek特征的libcs​​ FILE *的轻量级包装。