Expand description
c-scape is a layer underneath c-gull. It provides a subset of libc features,
containing only features that don’t require Rust’s std to implement. This
allows it to be used by std itself.
This is currently highly experimental, incomplete, and some things aren’t optimized. And it depends on Nightly Rust.
§c-scape’s two modes
Similar to c-gull, c-scape has “take-charge” and “coexist-with-libc” modes. One of these must be enabled.
In “take-charge” mode, c-scape takes charge of the process, handling program
startup (via Origin) providing malloc (via c-scape), and other things. This
requires some additional setup; see the c-scape-example example crate for
more details.
In “coexist-with-libc” mode, c-scape can be used as a drop-in (partial) libc replacement. To use it, just change your typical libc dependency in Cargo.toml to this:
libc = { version = "<c-scape version>", package = "c-scape", features = ["coexist-with-libc"] }Structs§
- af_
alg_ iv Deprecated WARNING: ThePartialEq,EqandHashimplementations of this type are unsound and will be removed in the future.
Enums§
- Equivalent to C’s
voidtype when used as a pointer.
Constants§
- maximum number of services provided on the same listening port
- ENOATTR
Deprecated - IP6 Auth Header
- IP Payload Comp. Protocol
- DCCP
- IP6 destination option
- exterior gateway protocol
- encapsulation header
- IP6 Encap Sec. Payload
- Ethernet-within-IPv6 encapsulation.
- IP6 fragmentation header
- General Routing Encap.
- Hop-by-hop option header
- xns idp
- group mgmt protocol
- for compatibility
- IPPROTO_
MAX Deprecated - Multipath TCP
- IP6 no next header
- Protocol indep. multicast
- pup
- raw IP packet
- IP6 routing header
- resource reservation
- SCTP
- tp-4 w/ class negotiation
- RLIMIT_
NLIMITS Deprecated - RLIM_
NLIMITS Deprecated - SIGUNUSED
Deprecated - VMADDR_
CID_ RESERVED Deprecated
Statics§
Functions§
- abs⚠
- acct⚠
- atof⚠
- atoi⚠
- atol⚠
- bind⚠
- brk⚠
- dup⚠
- dup2⚠
- dup3⚠
- exit⚠
- feof⚠
- fork⚠
- free⚠
- ftok⚠
- glob⚠
- GNU version of
basename(3), defined instring.h. - iopl⚠
- kill⚠
- labs⚠
- link⚠
- mmap⚠
- nice⚠
- open⚠
- pipe⚠
- poll⚠
- POSIX version of
basename(3), defined inlibgen.h. - puts⚠
- rand⚠
- read⚠
- The 64-bit libc on Solaris and illumos only has readdir_r. If a 32-bit Solaris or illumos target is ever created, it should use __posix_readdir_r. See libc(3LIB) on Solaris or illumos: https://illumos.org/man/3lib/libc https://docs.oracle.com/cd/E36784_01/html/E36873/libc-3lib.html https://www.unix.com/man-page/opensolaris/3LIB/libc/
- recv⚠
- sbrk⚠
- send⚠
- stat⚠
- sync⚠
- tee⚠
- time⚠
- vfork⚠
Deprecated - wait⚠
Type Aliases§
- int8_t
Deprecated - int16_t
Deprecated - int32_t
Deprecated - int64_t
Deprecated - uint8_t
Deprecated - uint16_
t Deprecated - uint32_
t Deprecated - uint64_
t Deprecated