Crate nix

source ·
Expand description

Rust friendly bindings to the various *nix system functions.

Modules are structured according to the C header file that they would be defined in.

Features

Nix uses the following Cargo features to enable optional functionality. They may be enabled in any combination.

  • acct - Process accounting
  • aio - POSIX AIO
  • dir - Stuff relating to directory iteration
  • env - Manipulate environment variables
  • event - Event-driven APIs, like kqueue and epoll
  • feature - Query characteristics of the OS at runtime
  • fs - File system functionality
  • hostname - Get and set the system’s hostname
  • inotify - Linux’s inotify file system notification API
  • ioctl - The ioctl syscall, and wrappers for my specific instances
  • kmod - Load and unload kernel modules
  • mman - Stuff relating to memory management
  • mount - Mount and unmount file systems
  • mqueue - POSIX message queues
  • net - Networking-related functionality
  • personality - Set the process execution domain
  • poll - APIs like poll and select
  • process - Stuff relating to running processes
  • pthread - POSIX threads
  • ptrace - Process tracing and debugging
  • quota - File system quotas
  • reboot - Reboot the system
  • resource - Process resource limits
  • sched - Manipulate process’s scheduling
  • socket - Sockets, whether for networking or local use
  • signal - Send and receive signals to processes
  • term - Terminal control APIs
  • time - Query the operating system’s clocks
  • ucontext - User thread context
  • uio - Vectored I/O
  • user - Stuff relating to users and groups
  • zerocopy - APIs like sendfile and copy_file_range

Re-exports

pub use libc;

Modules

dirdir
envenv
Environment variables
featuresfeature
Feature tests for OS functionality
Query network interface addresses
kmodkmod
Load and unload kernel modules.
mountmount
Mount file systems
mqueuemqueue
Posix Message Queue functions
netnet
Functionality involving network interfaces
pollpoll
Wait for events to trigger on specific file descriptors
ptyterm
Create master and slave virtual pseudo-terminals (PTYs)
schedsched
Execution scheduling
Mostly platform-specific functionality
timetime
ucontextucontext
Safe wrappers around functions found in libc “unistd.h” header

Macros

cmsg_spacesocket and uio
Create a buffer large enough for storing some control messages as returned by recvmsg.
Generates a wrapper function for an ioctl that passes no data to the kernel.
Generates a wrapper function for a “bad” ioctl that passes no data to the kernel.
Generates a wrapper function for an ioctl that reads data from the kernel.
Generates a wrapper function for a “bad” ioctl that reads data from the kernel.
Generates a wrapper function for an ioctl that reads an array of elements from the kernel.
Generates a wrapper function for an ioctl that reads and writes data to the kernel.
Generates a wrapper function for a “bad” ioctl that reads and writes data to the kernel.
Generates a wrapper function for an ioctl that reads and writes an array of elements to the kernel.
Generates a wrapper function for an ioctl that writes an array of elements to the kernel.
Generates a wrapper function for a ioctl that writes an integer to the kernel.
Generates a wrapper function for a “bad” ioctl that writes an integer to the kernel.
Generates a wrapper function for an ioctl that writes data through a pointer to the kernel.
Generates a wrapper function for a “bad” ioctl that writes data through a pointer to the kernel.
Generate an ioctl request code for a command that passes no data.
Generate an ioctl request code for a command that reads.
Generate an ioctl request code for a command that reads and writes.
Generate an ioctl request code for a command that writes.

Traits

Common trait used to represent file system paths by many Nix functions.

Type Definitions

Nix’s main error type.
Nix Result Type