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