在 Rust 中使用 nix 这个库,在某些情况下可以简化 Unix 系统编程。本文主要包括以下内容:
前言:什么是 Unix 系统编程?
nix 库介绍
nix 库使用示例
什么是 Unix 系统编程?
Unix 系统编程实际上是把底层编程和系统设计两个概念混在了一起,本文将其理解为“操作系统层级的编程”。在进行 Unix 系统编程时,关键要熟悉 POSIX 规范 中定义的接口函数,以及 Unix/Linux 的 man 手册,以下是一些示例:
进程管理(例如,fork,kill)
文件处理(例如,read,write)
网络编程(例如,socket,listen)
与硬件交互(例如,ioctl,mmap)
Linux容器(例如,clone,mount)
nix 库介绍
nix 库 旨在提供对各种类 Unix 平台(Linux,Darwin等)API 的友好绑定(bindings),其代码地址在:https://github.com/nix-rust/nix。在其 lib.rs 文件中有如下代码:
// Re-exported external cratespub extern crate libc;
它通过使用强制合法或安全的类型对 libc 库进行了一次封装,相对于 libc 库
暴露的 unsafe API,它具有两个特点: