# Function std::env::current_exe 1.0.0 [−] [src]

    pub fn current_exe() -> Result<PathBuf>

Returns the full filesystem path of the current running executable.

The path returned is not necessarily a "real path" of the executable as there may be intermediate symlinks.

# Errors

Acquiring the path of the current executable is a platform-specific operation that can fail for a good number of reasons. Some errors can include, but not be limited to, filesystem operations failing or general syscall failures.

# Security

The output of this function should not be used in anything that might have security implications. For example:

    fn main() {
        println!("{:?}", std::env::current_exe());
    }Run

On Linux systems, if this is compiled as `foo`:

    $ rustc foo.rs
    $ ./foo
    Ok("/home/alex/foo")

And you make a symbolic link of the program:

    $ ln foo bar

When you run it, you won't get the original executable, you'll get the symlink:

    $ ./bar
    Ok("/home/alex/bar")

This sort of behavior has been known to lead to privilege escalation when used incorrectly, for example.

# 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

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
↑
  Move up in search results
↓
  Move down in search results
↹
  Switch tab
⏎
  Go to active search result
+ / -
  Collapse/expand all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)