Function std::env::current_exe 1.0.0[−][src]
pub fn current_exe() -> Result<PathBuf>
Expand description
返回当前正在运行的可执行文件的完整文件系统路径。
平台特定的行为
如果可执行文件是通过符号链接调用的,则某些平台将返回符号链接的路径,而其他平台将返回符号链接目标的路径。
Errors
获取当前可执行文件的路径是特定于平台的操作,由于多种原因,该操作可能会失败。 一些错误可能包括但不限于文件系统操作失败或常规 syscall 错误。
Security
此函数的输出不应在可能涉及安全性的任何情况下使用。例如:
fn main() { println!("{:?}", std::env::current_exe()); }Run
在 Linux 系统上,如果将其编译为 foo
:
$ rustc foo.rs
$ ./foo
Ok("/home/alex/foo")
然后您对该程序进行了硬链接:
$ ln foo bar
运行它时,您将不会获得原始可执行文件的路径,而会获得硬链接的路径:
$ ./bar
Ok("/home/alex/bar")
如果不正确使用 lead to privilege escalation,这种行为是已知的。
Examples
use std::env; match env::current_exe() { Ok(exe_path) => println!("Path of this executable is: {}", exe_path.display()), Err(e) => println!("failed to get current exe path: {}", e), };Run