# proc_self
[Docs](https://docs.rs/proc_self/0.1.0)
---
### Note: This crate has been integrated into https://github.com/alecmocatta/palaver. Use that instead.
---
Cross-platform `/proc/self` functionality.
This library enables limited `/proc/self` functionality, including getting the current executable, open file descriptors, and paths for open file descriptors that can be passed to e.g. `exec` (for those systems without `fexecve`).
It's currently used on unix-family systems; most Windows functionality is TODO.
## Examples
```rust
extern crate nix;
extern crate proc_self;
use std::io::Read;
use proc_self::*;
// Close all file descriptors except std{in,out,err}.
for fd in FdIter::new().unwrap() {
if fd > 2 {
nix::unistd::close(fd).unwrap();
}
}
let mut current_binary = vec![];
exe().unwrap().read_to_end(&mut current_binary).unwrap();
println!("Current binary is {} bytes long!", current_binary.len());
```
## License
Licensed under Apache License, Version 2.0, ([LICENSE.txt](LICENSE.txt) or http://www.apache.org/licenses/LICENSE-2.0).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.