|
StormByte C++ Library: System module 1.0.1.9999
StormByte-System is the C++26 process and environment module of the StormByte suite.
|
StormByte-System is the C++26 system module of the StormByte suite.
Spawn processes with piped stdin/stdout/stderr, chain them, suspend/resume, and expand environment variables. POSIX and Windows stay behind one API.
| Goal | How it is achieved |
|---|---|
| One process API | Process starts on construct; pipes are private. |
| Shell-like chaining | p1 >> p2 forwards stdout to stdin on a worker thread. |
| stdin control | << writes; << System::EoF closes the write end. |
| Environment paths | Variable::Expand (VAR% on Windows, ~ on UNIX). |
Process (fork/exec or CreateProcess)Wait, Pid, Suspend, ResumeFileIOError, ExecutableNotFoundPipe (pipe2 / CreatePipe)| Dependency | Role |
|---|---|
| StormByte (base) | Exceptions, visibility |
| Module | Role | API |
|---|---|---|
| Base | Exceptions, Expected, serialization, strings, UUID, concepts | /StormByte |
| Buffer | FIFO, SharedFIFO, Ring, Producer/Consumer and multi-stage pipelines | /StormByte-Buffer |
| Config | Human-readable text and versioned binary documents (groups, lists, raw bytes) | /StormByte-Config |
| Crypto | Hash, compress, encrypt, sign and key agreement — Crypto++ never leaves the private tree | /StormByte-Crypto |
| Database | One API over SQLite, PostgreSQL and MariaDB | /StormByte-Database |
| Logger | Stream logger with levels, headers, human-readable sizes and redaction (ThreadedLog) | /StormByte-Logger |
| Multimedia | Decode, encode and containers without raw FFmpeg types; codecs enabled only if present | /StormByte-Multimedia |
| Network | Framed packets, Client/Server, IPv4/IPv6 TCP and Buffer pipelines (compress/encrypt) | /StormByte-Network |
| System | This repository | /StormByte-System |
| Type | Role |
|---|---|
Process | Spawn and talk to a child |
Variable | Expand environment strings |
Exception / FileIOError / ExecutableNotFound | Errors |
System::EoF | Close process stdin |
Pipe is private.
On Windows use C:\\Windows\\System32\\cmd.exe (or the real binary path) instead of /bin/echo.
Wait() has no timeout.Enable tests in CMake (ENABLE_TEST) and run CTest from the build tree.
Issues on GitHub. No wiki, no discussions.
GNU Lesser General Public License v3 or later.