proc_self 0.2.0

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`). Integrated into https://github.com/alecmocatta/palaver
Documentation
# 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.