INNER CODE UNIT · Rust
read_new_kmsg
KernelSU-Next/KernelSU-Next · userspace/ksuinit/src/lib.rs:118
fn read_new_kmsg(file: &mut File) -> Result<String> {
let mut output = Vec::new();
let mut record = [0u8; 8192];
loop {
match file.read(&mut record) {
Ok(0) => break,
Ok(length) => {
output.extend_from_slice(&record[..length]);
output.push(b'\n');
}
Err(error) if error.kind() == ErrorKind::WouldBlock => break,
Err(error) => return Err(error).context("Cannot read /dev/kmsg"),
}
}
Ok(String::from_utf8_lossy(&output).into_owned())
}