All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
fchown(2)
wrapper. (#1257)MAP_HUGE_
SIZE
family of flags. (#1211)F_OFD_*
fcntl
commands on Linux and Android. (#1195)env::clearenv()
: calls libc::clearenv
on platforms where it's available, and clears the environment of all variables via std::env::vars
and std::env::remove_var
on others. (#1185)FsType
inner value made public. (#1187)unistd::setfsuid
and unistd::setfsgid
to set the user or group identity for filesystem checks per-thread. (#1163)Ord
, PartialOrd
for unistd::Pid
(#1189)select::FdSet::fds
method to iterate over file descriptors in a set. (#1207)sendmmsg
and recvmmsg
calls (#1208)SCM_CREDS
messages (UnixCredentials
) on FreeBSD/DragonFly (#1216)BindToDevice
socket option (sockopt) on Linux (#1233)EventFilter
bitflags for EV_DISPATCH
and EV_RECEIPT
on OpenBSD. (#1252)Ipv4PacketInfo
and Ipv6PacketInfo
to ControlMessage
. (#1222)CpuSet
and UnixCredentials
now implement Default
. (#1244)unistd::ttyname
(#1259)Ipv4PacketInfo
and Ipv6PacketInfo
to ControlMessage
for iOS and Android. (#1265)TimerFd
. (#1261)fallocate
return type from c_int
to ()
(#1201)sys::ptrace::setregs
and sys::ptrace::getregs
on x86_64-unknown-linux-musl target (#1198)ptrace::write
is now an unsafe
function. Caveat programmer. (#1245)execv
, execve
, execvp
and execveat
in ::nix::unistd
and reboot
in ::nix::sys::reboot
now return Result<Infallible>
instead of Result<Void>
(#1239)sys::socket::sockaddr_storage_to_addr
is no longer unsafe
. So is offset_of!
.sys::socket::sockaddr_storage_to_addr
, offset_of!
, and Errno::clear
are no longer unsafe
.SockAddr::as_ffi_pair
,sys::socket::sockaddr_storage_to_addr
, offset_of!
, and Errno::clear
are no longer unsafe
. (#1244)Inotify
methods now take self
by value instead of by reference (#1244)nix::poll::ppoll
: timeout
parameter is now optional, None is equivalent for infinite timeout.Fixed getsockopt
. The old code produced UB which triggers a panic with Rust 1.44.0. (#1214)
Fixed a bug in nix::unistd that would result in an infinite loop when a group or user lookup required a buffer larger than 16KB. (#1198)
Fixed unaligned casting of cmsg_data
to af_alg_iv
(#1206)
Fixed readlink
/readlinkat
when reading symlinks longer than PATH_MAX
(#1231)
PollFd
, EpollEvent
, IpMembershipRequest
, Ipv6MembershipRequest
, TimeVal
, and IoVec
are now repr(transparent)
. This is required for correctness's sake across all architectures and compilers, though now bugs have been reported so far. (#1243)
Fixed unaligned pointer read in Inotify::read_events
. (#1244)
Removed sys::socket::addr::from_libc_sockaddr
from the public API. (#1215)
Removed sys::termios::{get_libc_termios, get_libc_termios_mut, update_wrapper
from the public API. These were previously hidden in the docs but still usable by downstream. (#1235)
Nix no longer implements NixPath
for Option<P> where P: NixPath
. Most Nix functions that accept NixPath
arguments can't do anything useful with None
. The exceptions (mount
and quotactl_sync
) already take explicitly optional arguments. (#1242)
Removed unistd::daemon
and unistd::pipe2
on OSX and ios (#1255)
Removed sys::event::FilterFlag::NOTE_EXIT_REPARENTED
and sys::event::FilterFlag::NOTE_REAP
on OSX and ios. (#1255)
Removed sys::ptrace::ptrace
on Android and Linux. (#1255)
Dropped support for powerpc64-unknown-linux-gnu (#1266)
CLK_TCK
to SysconfVar
(#1177)Added ptrace::seize()
: similar to attach()
on Linux but with better-defined semantics. (#1154)
Added Signal::as_str()
: returns signal name as &'static str
(#1138)
Added posix_fallocate
. (#1105)
Implemented Default
for FdSet
(#1107)
Added NixPath::is_empty
. (#1107)
Added mkfifoat
(#1133)
Added User::from_uid
, User::from_name
, User::from_gid
and Group::from_name
, (#1139)
Added linkat
(#1101)
Added sched_getaffinity
. (#1148)
Added optional Signal
argument to ptrace::{detach, syscall}
for signal injection. (#1083)
sys::termios::BaudRate
now implements TryFrom<speed_t>
instead of From<speed_t>
. The old From
implementation would panic on failure. (#1159)
sys::socket::ControlMessage::ScmCredentials
and sys::socket::ControlMessageOwned::ScmCredentials
now wrap UnixCredentials
rather than libc::ucred
. (#1160)
sys::socket::recvmsg
now takes a plain Vec
instead of a CmsgBuffer
implementor. If you were already using cmsg_space!
, then you needn't worry. (#1156)
sys::socket::recvfrom
now returns Result<(usize, Option<SockAddr>)>
instead of Result<(usize, SockAddr)>
. (#1145)
Signal::from_c_int
has been replaced by Signal::try_from
(#1113)
Changed readlink
and readlinkat
to return OsString
(#1109)
# use nix::fcntl::{readlink, readlinkat}; // the buffer argument of `readlink` and `readlinkat` has been removed, // and the return value is now an owned type (`OsString`). // Existing code can be updated by removing the buffer argument // and removing any clone or similar operation on the output // old code `readlink(&path, &mut buf)` can be replaced with the following let _: OsString = readlink(&path); // old code `readlinkat(dirfd, &path, &mut buf)` can be replaced with the following let _: OsString = readlinkat(dirfd, &path);
Minimum supported Rust version is now 1.36.0. (#1108)
Ipv4Addr::octets
, Ipv4Addr::to_std
, Error::as_errno
, ForkResult::is_child
, ForkResult::is_parent
, Gid::as_raw
, Uid::is_root
, Uid::as_raw
, Pid::as_raw
, and PollFd::revents
now take self
by value. (#1107)
Type &CString
for parameters of exec(v|ve|vp|vpe|veat)
are changed to &CStr
. (#1121)
Fix length of abstract socket addresses (#1120)
Fix initialization of msghdr in recvmsg/sendmsg when built with musl (#1136)
CmsgSpace
. (#1156)MSG_WAITALL
to MsgFlags
in sys::socket
. (#1079)Clone
, Copy
, Debug
, Eq
, Hash
, and PartialEq
for most types that support them. (#1035)copy_file_range
wrapper (#1069)mkdirat
. (#1084)posix_fadvise
. (#1089)AF_VSOCK
to AddressFamily
. (#1091)unlinkat
(#1058)renameat
. (#1097)ifaddrs
now present when building for Android. (#1077)statfs()
and fstatfs()
return result with Statfs
wrapper (#928)sched_yield
for all nix hosts. (#1090)Macros exported by nix
may now be imported via use
on the Rust 2018 edition without importing helper macros on Linux targets. (#1066)
For example, in Rust 2018, the ioctl_read_bad!
macro can now be imported without importing the convert_ioctl_res!
macro.
use nix::ioctl_read_bad; ioctl_read_bad!(tcgets, libc::TCGETS, libc::termios);
uint32_t
to the native equivalents like u32.
(#1072)inotify_init1
, inotify_add_watch
and inotify_rm_watch
wrappers for Android and Linux. (#1016)ALG_SET_IV
, ALG_SET_OP
and ALG_SET_AEAD_ASSOCLEN
control messages and AF_ALG
socket types on Linux and Android (#1031)from_std
and to_std
methods for sys::socket::IpAddr
(#1043)nix::unistd:seteuid
and nix::unistd::setegid
for those platforms that do not support setresuid
nor setresgid
respectively. (#1044)access
wrapper (#1045)forkpty
(#1042)sched_yield
(#1050)PollFd
event flags renamed to PollFlags
(#1024)
recvmsg
now returns an Iterator over ControlMessageOwned
objects rather than ControlMessage
objects. This is sadly not backwards-compatible. Fix code like this:
if let ControlMessage::ScmRights(&fds) = cmsg {
By replacing it with code like this:
if let ControlMessageOwned::ScmRights(fds) = cmsg {
(#1020)
Replaced CmsgSpace
with the cmsg_space
macro. (#1020)
Fixed multiple bugs when using sendmsg
and recvmsg
with ancillary control messages (#1020)
Macros exported by nix
may now be imported via use
on the Rust 2018 edition without importing helper macros for BSD targets. (#1041)
For example, in Rust 2018, the ioctl_read_bad!
macro can now be imported without importing the convert_ioctl_res!
macro.
use nix::ioctl_read_bad; ioctl_read_bad!(tcgets, libc::TCGETS, libc::termios);
Daemon
, NOTE_REAP
, and NOTE_EXIT_REPARENTED
are now deprecated on OSX and iOS. (#1033)PTRACE_GETREGS
, PTRACE_SETREGS
, PTRACE_GETFPREGS
, and PTRACE_SETFPREGS
have been removed from some platforms where they never should've been defined in the first place. (#1055)setsockopt
. (#972)TCP_CONGESTION
in setsockopt
. (#972)symlinkat
wrapper. (#997)ptrace::{getregs, setregs}
. (#1010)nix::sys::signal::signal
. (#817)mprotect
wrapper. (#991)lutimes
never worked on OpenBSD as it is not implemented on OpenBSD. It has been removed. (#1000)fexecve
never worked on NetBSD or on OpenBSD as it is not implemented on either OS. It has been removed. (#1000)FromStr
and Display
impls for nix::sys::Signal
(#884)sync
wrapper. (#961)sysinfo
wrapper. (#922)SO_PEERCRED
socket option and the UnixCredentials
type on all Linux and Android targets. (#921)SCM_CREDENTIALS
, allowing to send process credentials over Unix sockets. (#923)dir
module for reading directories (wraps fdopendir
, readdir
, and rewinddir
). (#916)kmod
module that allows loading and unloading kernel modules on Linux. (#930)futimens
and utimesat
wrappers (#944), an lutimes
wrapper (#967), and a utimes
wrapper (#946).AF_UNSPEC
wrapper to AddressFamily
(#948)mode_t
public alias within sys::stat
. (#954)truncate
wrapper. (#956)fchownat
wrapper. (#955)ptrace
on BSD operating systems (#949)ptrace
functions for reads and writes to tracee memory and ptrace kill (#949) (#958)acct
wrapper module for enabling and disabling process accounting (#952)time_t
and suseconds_t
public aliases within sys::time
. (#968)unistd::execvpe
for Haiku, Linux and OpenBSD (#975)Error::as_errno
. (#977)preadv
take immutable slice of IoVec. (#914)sendfile
on FreeBSD and Darwin. (#901)pselect
(#894)preadv
and pwritev
on the BSDs. (#883)mlockall
and munlockall
(#876)SO_MARK
on Linux. (#873)sys::aio
module. (#872)sys::aio::LioCb
as a wrapper for libc::lio_listio
. (#872)unistd::getsid
(#850)alarm
. (#830)IFF_NO_PI, IFF_TUN, IFF_TAP
on linux-like systems. (#853)statvfs
module to all MacOS and Linux architectures. (#832)EVFILT_EMPTY
, EVFILT_PROCDESC
, and EVFILT_SENDFILE
on FreeBSD. (#825)termios::cfmakesane
on FreeBSD. (#825)MSG_CMSG_CLOEXEC
on *BSD. (#825)fchmod
, fchmodat
. (#857)request_code_write_int!
on FreeBSD/DragonFlyBSD (#833)Display
and Debug
for SysControlAddr
now includes all fields. (#837)ioctl!
has been replaced with a family of ioctl_*!
macros. (#833)io!
, ior!
, iow!
, and iorw!
has been renamed to request_code_none!
, request_code_read!
, request_code_write!
, and request_code_readwrite!
respectively. These have also now been exposed in the documentation. (#833)ptrace::Request
definitions for uncommon Linux platforms (#892)FD_CLOEXEC
and O_NONBLOCK
was removed from socket()
, accept4()
, and socketpair()
. (#907)SigAction::flags
on Linux (#869)ioctl_write_int!
on FreeBSD/DragonFlyBSD (#833)ioctl_write_int!
now properly supports passing a c_ulong
as the parameter on Linux non-musl targets (#833)bytes
crate from the sys::aio
module. See sys::aio::AioCb::from_boxed_slice
examples for alternatives. (#872)sys::aio::lio_listio
. Use sys::aio::LioCb::listio
instead. (#872)accept4()
from macos, ios, and netbsd targets (#907)IFF_NOTRAILERS
on OpenBSD, as it has been removed in OpenBSD 6.3 (#893)sys::ptrace::step
(#852)AioCb::from_ptr
and AioCb::from_mut_ptr
(#820)sys::ptrace::{traceme, syscall, cont, attach}
. Using the matching routines with sys::ptrace::ptrace
is now deprecated.nix::poll
module for all platforms (#672)nix::ppoll
function for FreeBSD and DragonFly (#672)AddressFamily
enum. (#647)pid()
method to WaitStatus
for extracting the PID. (#722)nix::unistd:fexecve
. (#727)uname()
on all platforms. (#739)signalfd
module on Android as well. (#739)nix::sys::ptrace::detach
. (#749)nix::sys::socket::ControlMessage::ScmTimestamp
(#663)nix::sys::socket::sockopt::ReceiveTimestamp
(#663)AioCb
(#773)nix::sys::fallocate
(#768)nix::unistd::mkfifo
. (#602)ptrace::Options::PTRACE_O_EXITKILL
on Linux and Android. (#771)nix::sys::uio::{process_vm_readv, process_vm_writev}
on Linux (#568)nix::unistd::{getgroups, setgroups, getgrouplist, initgroups}
. (#733)nix::sys::socket::UnixAddr::as_abstract
on Linux and Android. (#785)nix::unistd::execveat
on Linux and Android. (#800)from_raw()
method to WaitStatus
for converting raw status values to WaitStatus
independent of syscalls. (#741)sigprocmask
to the signal module. (#826)nix::sys::socket::LinkAddr
on Linux and all bsdlike system. (#813)IP_TRANSPARENT
/ BIND_ANY
. (#835)mqueue
module for all supported operating systems. (#834)pipe2
on all BSD targets. Users should notice no difference. (#777)ptrace
wrappers to encourage namespacing (#692)sys::ptrace::ptrace
as unsafe
.socket()
and socketpair()
. The protocol
argument has changed type from c_int
to SockProtocol
. It accepts a None
value for default protocol that was specified with zero using c_int
. (#647)select
easier to use, adding the ability to automatically calculate the nfds
parameter using the new FdSet::highest
(#701)unistd::setresuid
and unistd::setresgid
on FreeBSD and OpenBSD (#721)statvfs
module removing extraneous API functions and the statvfs::vfs
module. Additionally (f)statvfs()
now return the struct directly. And the returned Statvfs
struct now exposes its data through accessor methods. (#729)addr
argument to madvise
and msync
is now *mut
to better match the libc API. (#731)shm_open
and shm_unlink
are no longer exposed on Android targets, where they are not officially supported. (#731)MapFlags
, MmapAdvise
, and MsFlags
expose some more variants and only officially-supported variants are provided for each target. (#731)pty::ptsname
function as unsafe
(#744)AioCb::Drop
will now panic if the AioCb
is still in-progress (#715)nix::sys::socket::UnixAddr::new_abstract
to Linux and Android only. (#785)ucred
struct has been removed in favor of a UserCredentials
struct that contains only getters for its fields. (#814)ip_mreq
and ipv6_mreq
have been replaced with IpMembershipRequest
and Ipv6MembershipRequest
. (#814)pause
. (#829)u32
instead of the BaudRate
enum on BSD platforms to support arbitrary baud rates. See the module docs for nix::sys::termios
for more details. (#843)AioCb::fsync
, AioCb::read
, and AioCb::write
. It is no longer an error to drop an AioCb
that failed to enqueue in the OS. (#715)sendmsg
/recvmsg
, caused by mismatched msghdr
definition. (#648)AioCb::from_boxed_slice
has been removed. It was never actually safe. Use from_bytes
or from_bytes_mut
instead. (#820)memfd_create()
and pivot_root()
, which are still exposed as separate functions. (#747)Errno
variants are no longer reexported from the errno
module. Errno
itself is no longer reexported from the crate root and instead must be accessed using the errno
module. (#696)MS_VERBOSE
, MS_NOSEC
, and MS_BORN
from MsFlags
. These are internal kernel flags and should never have been exposed. (#814)sysconf
, pathconf
, and fpathconf
(#630sys::signal::SigAction::{ flags, mask, handler}
(#611nix::sys::pthread::pthread_self
(#591AioCb::from_boxed_slice
(#582nix::unistd::{openat, fstatat, readlink, readlinkat}
(#551)nix::pty::{grantpt, posix_openpt, ptsname/ptsname_r, unlockpt}
(#556nix::ptr::openpty
(#456)nix::ptrace::{ptrace_get_data, ptrace_getsiginfo, ptrace_setsiginfo and nix::Error::UnsupportedOperation}
(#614)cfmakeraw
, cfsetspeed
, and tcgetsid
. (#527)ioctl!
macro. (#670)PTRACE_O_TRACESYSGOOD
events from wait
and waitpid
using WaitStatus::PtraceSyscall
(#566).ioctl!
macro and its variants now allow the generated functions to have doccomments. (#661)ioctl!(write ...)
into ioctl!(write_ptr ...)
and ioctl!(write_int ..)
variants to more clearly separate those use cases. (#670)sys::mman::{ mmap, munmap, madvise, munlock, msync }
as unsafe. (#559)revents
argument from PollFd::new()
as it's an output argument and will be overwritten regardless of value. (#542)sys::select::FdSet::contains
to make self
immutable (#564)gid_t
, pid_t
, and uid_t
as Gid
, Pid
, and Uid
respectively. Various functions have been changed to use these new types as arguments. (#629)nix::sys::statfs::{statfs,fstatfs}
uses statfs definition from libc::statfs
instead of own linux specific type nix::sys::Statfs
. Also file system type constants like nix::sys::statfs::ADFS_SUPER_MAGIC
were removed in favor of the libc equivalent. (#561)eventfd
, signalfd
, and pwritev
/preadv
functionality is now included by default for all supported platforms. (#681)ioctl!
macro's plain variants has been replaced with “bad read” to be consistent with other variants. The generated functions also have more strict types for their arguments. The “*_buf” variants also now calculate total array size and take slice references for improved type safety. The documentation has also been dramatically improved. (#670)io::Error
from nix::Error
and the conversion from nix::Error
to Errno
(#614)execvpe
is no longer supported, but this was already broken and will be added back in the next release. (#681)ioc_*
functions and many helper constants and macros within the ioctl
module. These should always have been private and only the ioctl!
should be used in public code. (#670)Linux/PPC
(#553), MacOS/x86_64,i686
(#553), NetBSD/x64_64
(#538), FreeBSD/x86_64,i686
(#536), and Android
(#631).bind
and errno_location
now work correctly on Android
(#631)nix::ptrace
on all Linux-kernel-based platforms #624. Previously it was only available on x86, x86-64, and ARM, and also not on Android.sys::socket::sendmsg
with zero entry cmsgs
parameter. (#623)ioctl!
macro now supports working with non-int datatypes and properly supports all platforms. (#670)::nix::sys::termios::BaudRate
enum to provide portable baudrate values. (#518)WaitStatus::PtraceEvent
to support ptrace events on Linux and Android (#438)ioctl
calls on BSD platforms (#478)TimeSpec
(#475) (#483)epoll_create1
and bitflags EpollCreateFlags
in ::nix::sys::epoll
in order to support ::libc::epoll_create1
. (#410)setresuid
and setresgid
for Linux in ::nix::unistd
(#448)getpgid
in ::nix::unistd
(#433)tcgetpgrp
and tcsetpgrp
in ::nix::unistd
(#451)CLONE_NEWCGROUP
in ::nix::sched
(#457)getpgrp
in ::nix::unistd
(#491)fchdir
in ::nix::unistd
(#497)major
and minor
in ::nix::sys::stat
for decomposing dev_t
(#508)libc
in more places. (#503)ppoll
in ::nix::poll
(#520)::nix::sys::termios::{cfgetispeed, cfsetispeed, cfgetospeed, cfsetospeed}
switched to use BaudRate
enum from speed_t
. (#518)epoll_ctl
now could accept None as argument event
when op is EpollOp::EpollCtlDel
. (#480)bad
keyword from the ioctl!
macro (#478)TimeVal
into an opaque Newtype (#475)kill
‘s signature, defined in ::nix::sys::signal
, changed, so that the signal parameter has type T: Into<Option<Signal>>
. None
as an argument for that parameter will result in a 0 passed to libc’s kill
, while a Some
-argument will result in the previous behavior for the contained Signal
. (#445)KEvent
to an opaque structure that may only be modified by its constructor and the ev_set
method. (#415) (#442) (#463)pipe2
now calls libc::pipe2
where available. Previously it was emulated using pipe
, which meant that setting O_CLOEXEC
was not atomic. (#427)EpollEventKind
to EpollFlags
in ::nix::sys::epoll
in order for it to conform with our conventions. (#410)EpollEvent
in ::nix::sys::epoll
is now an opaque proxy for ::libc::epoll_event
. The formerly public field events
is now be read-only accessible with the new method events()
of EpollEvent
. Instances of EpollEvent
can be constructed using the new method new()
of EpollEvent. (#410)SigFlags
in ::nix::sys::signal
has be renamed to SigmaskHow
and its type has changed from bitflags
to enum
in order to conform to our conventions. (#460)sethostname
now takes a &str
instead of a &[u8]
as this provides an API that makes more sense in normal, correct usage of the API.gethostname
previously did not expose the actual length of the hostname written from the underlying system call at all. This has been updated to return a &CStr
within the provided buffer that is always properly NUL-terminated (this is not guaranteed by the call with all platforms/libc implementations).FcntlArg
enum. (#541)EVFILT_USER
on FreeBSD (#415)UnixAddr::new_abstract
in ::nix::sys::socket
. (#429)dev_t
the same way as libc. (#508)lseek
and lseek64
in ::nix::unistd
(#377)mkdir
and getcwd
in ::nix::unistd
(#416)sigmask_mut
and sigmask
to UContext
in ::nix::ucontext
. (#370)WUNTRACED
to WaitPidFlag
in ::nix::sys::wait
for non-linux targets. (#379)::nix::sys::reboot
with enumeration RebootMode
and functions reboot
and set_cad_enabled
. Currently for linux only. (#386)FdSet
in ::nix::sys::select
now also implements Clone
. (#405)F_FULLFSYNC
to FcntlArg
in ::nix::fcntl
for apple targets. (#407)CpuSet::unset
in ::nix::sched
. (#402)new()
to PollFd
in ::nix::poll
, in order to allow creation of objects, after removing public access to members. (#399)revents()
to PollFd
in ::nix::poll
, in order to provide read access to formerly public member revents
. (#399)MSG_CMSG_CLOEXEC
to MsgFlags
in ::nix::sys::socket
for linux only. (#422)Signal
in ::nix::sys::signal
. (#362)EventFdFlag
to EfdFlags
in ::nix::sys::eventfd
. (#383)CpuSet::is_set
and CpuSet::set
in ::nix::sched
to Result<bool>
and Result<()>
, respectively. They now return EINVAL
, if an invalid argument for the field
parameter is passed. (#402)MqAttr
in ::nix::mqueue
is now an opaque proxy for ::libc::mq_attr
, which has the same structure as the old MqAttr
. The field mq_flags
of ::libc::mq_attr
is readable using the new method flags()
of MqAttr
. MqAttr
also no longer implements Debug
. (#392)msq_prio
of mq_receive
with type u32
in ::nix::mqueue
was replaced by a parameter named msg_prio
with type &mut u32
, so that the message priority can be obtained by the caller. (#392)MQd
in ::nix::queue
was replaced by the type alias libc::mqd_t
, both of which are aliases for the same type. (#392)SigNum
from ::nix::sys::signal
. (#362)CpuMask
from ::nix::shed
. (#402)PollFd
in ::nix::poll
. (See also added method revents()
. (#399)gettid
in ::nix::unistd
for linux and android. (#293)::nix::sched
and ::nix::sys::syscall
. (#301)SIGNALFD_SIGINFO_SIZE
in ::nix::sys::signalfd
. (#309)::nix::ucontext
with struct UContext
. Currently for linux only. (#311)EPOLLEXCLUSIVE
to EpollEventKind
in ::nix::sys::epoll
. (#330)pause
to ::nix::unistd
. (#336)sleep
to ::nix::unistd
. (#351)S_IFDIR
, S_IFLNK
, S_IFMT
to SFlag
in ::nix::sys::stat
. (#359)clear
and extend
functions to SigSet
's implementation in ::nix::sys::signal
. (#347)sockaddr_storage_to_addr
in ::nix::sys::socket
now supports sockaddr_nl
on linux and android. (#366)SO_ORIGINAL_DST
in ::nix::sys::socket
on linux. (#367)SIGINFO
in ::nix::sys::signal
for the macos target as well as SIGPWR
and SIGSTKFLT
in ::nix::sys::signal
for non-macos targets. (#361)IoVec
in ::nix::sys::uio
. (#304)CREATE_NEW_FD
by SIGNALFD_NEW
in ::nix::sys::signalfd
. (#309)SaFlag
to SaFlags
and SigFlag
to SigFlags
in ::nix::sys::signal
. (#314)Fork
to ForkResult
and changed its fields in ::nix::unistd
. (#332)signal
parameter to clone
's signature in ::nix::sched
. (#344)execv
, execve
, and execvp
now return Result<Void>
instead of Result<()>
in ::nix::unistd
. (#357)std::net::SocketAddr
to InetAddr
in ::nix::sys::socket::addr
. (#335)