I/O

Overrides

GREASE provides built-in overrides for the I/O primitives open, close, read, and write.

These overrides leverage Crucible's experimental symbolic I/O capabilities. In particular, these overrides require the use of a symbolic filesystem, which must be specified with --fs-root <path-to-filesystem-root> when invoking grease. See symbolic I/O for a more detailed description of what the contents of the symbolic filesystem should look like.

Standard streams

GREASE attempts to provide a POSIX environment. In particular, when in use, the [standard streams] stdin, stdout, and stderr are mapped to file descriptors 0, 1, and 2 respectively. stdin is empty by default, though --sym-stdin N populates it with N symbolic bytes. stdout and stderr do not exist by default and their file descriptors may be reused, e.g., by open. If their content is specified via --fs-root, then they will have their usual file descriptor numbers.

Sockets and networking

GREASE doesn't yet provide support for socket-based networking APIs.