当一种语言基于C库时,其库调用通常如下所示:
Language API -> C API -> System API
Run Code Online (Sandbox Code Playgroud)
当一种语言不使用C库时,它的库直接调用委托给系统API:
Language API -> System API
Run Code Online (Sandbox Code Playgroud)
当您在中间使用C API时,语言API的实现将更容易编写,因为您几乎不需要编写任何特定于操作系统的代码.反过来,这又可以使语言更容易跨平台 - 您可以委托跨平台C库,而不是考虑如何使用具体的平台特定功能.
原则上,Rust中没有任何内容阻止您删除C库并直接使用系统调用.正如你所注意到的,Go正是这样做的.但是,对于libc的依赖并不认为Rust开发人员在标准库中编写大量特定于平台的代码是合理的.
| 归档时间: |
|
| 查看次数: |
1667 次 |
| 最近记录: |