Slide 25
Slide 25 text
Usage in kompo
25
1:pub static READ_HANDLE: std::sync::LazyLock<
2: unsafe extern "C-unwind" fn(
3: fd: libc::c_int,
4: buf: *mut libc::c_void,
5: count: libc::size_t,
6: ) -> libc::ssize_t,
7:> = std::sync::LazyLock::new(|| unsafe {
8: let handle = libc::dlsym(libc::RTLD_NEXT, b"read\0".as_ptr() as _);
9: std::mem::transmute::<
10: *mut libc::c_void,
11: unsafe extern "C-unwind" fn(
12: fd: libc::c_int,
13: buf: *mut libc::c_void,
14: count: libc::size_t,
15: ) -> libc::ssize_t,
16: >(handle)
17:});
Store libc's `read` function in
a static variable.