Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::io::{Read, Seek, SeekFrom};
- use std::fs::File;
- use std::path::Path;
- use std::mem;
- fn read_four_bytes<P: AsRef<Path>>(path: P) -> [u8; 4] {
- let mut file = File::open(path).expect("File IO Failure");
- let mut value = [0u8; 4];
- file.read_exact(&mut value).expect("Unable to read 4 bytes");
- value
- }
- fn read_float_at_40<P: AsRef<Path>>(path: P) -> f32 {
- let mut file = File::open(path).expect("File IO Failure");
- let mut value = [0u8; 4];
- file.seek(SeekFrom::Start(40)).expect("Unable to seek to 40 bytes");
- file.read_exact(&mut value).expect("Unable to read 4 bytes");
- unsafe { mem::transmute::<[u8; 4], f32>(value) }
- }
- fn main() {
- let header = read_four_bytes("/proc/self/exe");
- assert_eq!(header, [0x7F, b'E', b'L', b'F']);
- println!("{:?}", header);
- let random_float = read_float_at_40("/proc/self/exe");
- println!("{:?}", random_float);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement