Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
}
unsafe fn write_status(st_wfd: RawFd, estatus: u8) {
- match write(st_wfd, slice::from_ref(&estatus)) {
+ match compat::write(st_wfd, slice::from_ref(&estatus)) {
Ok(1) => {}
Ok(_) => crashm("write child startup exit status: short write"),
Err(e) => crashe("write child startup exit status", e),
iov,
)
}
+
+/// Version of [`nix::unistd::write`] with a fixed type for the fd
+//
+/// * nix <=0.27 has `fd: c_int`
+/// * nix >=0.28 has `fd: impl AsFd`
+pub unsafe fn write(fd: c_int, buf: &[u8]) -> nix::Result<usize> {
+ nix::unistd::write(
+ { cfg_if! {
+ if #[cfg(nix_ge_0_28)] {
+ BorrowedFd::borrow_raw(fd)
+ } else {
+ fd
+ }
+ }},
+ buf,
+ )
+}