Sane C++ Libraries
C++ Platform Abstraction Libraries
Loading...
Searching...
No Matches
Process

🟩 Launch child processes, redirect their standard streams, and build pipelines (see Process for more details) More...

Classes

struct  SC::ProcessID
 Native os handle to a process identifier. More...
 
struct  SC::Process
 Execute a child process with standard file descriptors redirection. More...
 
struct  SC::ProcessChain
 Execute multiple child processes chaining input / output between them. More...
 
struct  SC::ProcessEnvironment
 Reads current process environment variables. More...
 
struct  SC::ProcessFork
 Forks current process exiting child at end of process A fork duplicates a parent process execution state, os handles and private memory. More...
 
struct  SC::ResultProcess
 Process result retaining optional backend and native platform details. More...
 

Enumerations

enum class  SC::ProcessError : uint32_t {
  ProcessChainEmpty = 1 ,
  ProcessAlreadyInChain ,
  InvalidInputRedirection ,
  InvalidOutputRedirection ,
  UnsupportedInputRedirection ,
  UnsupportedOutputRedirection ,
  ArgumentCapacityExceeded ,
  EnvironmentCapacityExceeded ,
  WaitFailed ,
  LaunchFailed ,
  CloneFailed ,
  PathCapacityExceeded ,
  PathMustBeAbsolute ,
  InvalidPath ,
  PathResolutionFailed
}
 Stable error codes returned by the Process library. More...
 
enum class  SC::ProcessErrorDetail : uint32_t {
  None = 0 ,
  PosixWaitPid ,
  WindowsGetExitCodeProcess ,
  PosixFork ,
  PosixExec ,
  PosixBuildResolveExecutablePath ,
  PosixDuplicateDescriptor ,
  PosixResetSignalHandlers ,
  PosixChangeWorkingDirectory ,
  WindowsSetHandleInformation ,
  WindowsCreateProcess ,
  WindowsRtlCloneUserProcess ,
  WindowsNtWaitForSingleObject ,
  WindowsResolveWorkingDirectory ,
  WindowsPrepareExecutableTransportPath ,
  WindowsPrepareWorkingDirectoryTransportPath ,
  WindowsNormalizeExecutablePath
}
 Stable diagnostic stages for Process failures. More...
 

Functions

ResultErrorFormat SC::formatProcessError (ProcessError error, Span< char > output)
 Formats a canonical English Process diagnostic into caller-owned storage.
 
ResultErrorFormat SC::formatProcessError (Result result, Span< char > output)
 Formats a plain Result when it contains a Process error.
 
ResultErrorFormat SC::formatProcessError (ResultProcess result, Span< char > output)
 Formats a Process result, including its backend detail and native error number when available.
 

Detailed Description

🟩 Launch child processes, redirect their standard streams, and build pipelines (see Process for more details)

Enumeration Type Documentation

◆ ProcessError

enum class SC::ProcessError : uint32_t
strong

#include <ProcessError.h>

Stable error codes returned by the Process library.

◆ ProcessErrorDetail

enum class SC::ProcessErrorDetail : uint32_t
strong

#include <ProcessError.h>

Stable diagnostic stages for Process failures.

Details are only meaningful on a failing ResultProcess and are deliberately not encoded in Result.

Function Documentation

◆ formatProcessError() [1/3]

ResultErrorFormat SC::formatProcessError ( ProcessError error,
Span< char > output )
inline

#include <ProcessErrorFormatter.h>

Formats a canonical English Process diagnostic into caller-owned storage.

◆ formatProcessError() [2/3]

ResultErrorFormat SC::formatProcessError ( Result result,
Span< char > output )
inline

#include <ProcessErrorFormatter.h>

Formats a plain Result when it contains a Process error.

◆ formatProcessError() [3/3]

ResultErrorFormat SC::formatProcessError ( ResultProcess result,
Span< char > output )
inline

#include <ProcessErrorFormatter.h>

Formats a Process result, including its backend detail and native error number when available.