Function std::env::current_exe1.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