4 releases
0.1.4 | Jun 27, 2022 |
---|---|
0.1.3 | Jan 7, 2021 |
0.1.1 | Jan 4, 2017 |
0.1.0 | Jan 4, 2017 |
#256 in Filesystem
12,217 downloads per month
Used in 8 crates
(6 directly)
13KB
212 lines
process_path
A Rust library to get the path of the currently executing process or the the current dynamic library.
The latter is particularly useful for ‘plug-in‘ type dynamic libraries that need to load resources stored relative to the location of the library in the file system.
Usage
Add this to your Cargo.toml
:
[dependencies]
process_path = "0.1.4"
and this to your crate root:
use process_path;
Example
This program prints its path to stdout:
use process_path::get_executable_path;
fn main() {
let path = get_executable_path();
match path {
None => println!("The process path could not be determined"),
Some(path) => println!("{:?}", path)
}
}
Supported Platforms
Platform | Underlying API get_executable_path() |
get_dylib_path() |
---|---|---|
Linux | readlink(/proc/self/exe) |
dladdr() |
FreeBSD | sysctl(3) or readlink(/proc/curproc/file) |
dladdr() |
NetBSD | readlink(/proc/curproc/exe) |
dladdr() |
DragonflyBSD | readlink(/proc/curproc/file) |
dladdr() |
macOS | _NSGetExecutablePath() |
dladdr() |
Windows | GetModuleFileName() |
GetModuleHandleEx() |
License
Copyright Wesley Wiser and process_path
contributors.
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Dependencies
~185KB