2个版本
| 0.1.2 | 2019年11月20日 |
|---|---|
| 0.1.1 |
|
| 0.1.0 | 2019年11月20日 |
#824 in 命令行界面
6KB
87 行
libargs
在大多数Rust平台上,从C程序中调用的函数中,std::env::args将正常工作。然而,在Linux上并非如此。以下平台受支持
cfg(all(target_os = "linux", target_env = "gnu")):glibc会将命令行参数传递给静态构造函数,这是非标准的cfg(all(target_os = "linux", not(target_env = "gnu"))):传递给_start的envp指针存储在__environ符号中。由于命令行参数位于栈中,我们可以从__environ开始反向遍历栈,以找到argc和argv。这在所有我已经测试过的平台上都有效,但是它的时间复杂度与argc成线性关系。cfg(not(target_os = "linux")):使用std::env::args,它在大多数平台上都有效(包括Windows和macOS)。在不受支持的平台上,将返回一个空的Vec。
lib.rs:
请参阅args的文档。
依赖项
~49KB