sdl3-bindgen-sys
Safe HaskellNone
LanguageGHC2021

SDL3.Sys.Bindgen.Process

Description

Process control support.

These functions provide a cross-platform way to spawn and manage OS-level processes.

You can create a new subprocess with SDL_CreateProcess() and optionally read and write to it using SDL_ReadProcess() or SDL_GetProcessInput() and SDL_GetProcessOutput(). If more advanced functionality like chaining input between processes is necessary, you can use SDL_CreateProcessWithProperties().

You can get the status of a created process with SDL_WaitProcess(), or terminate the process with SDL_KillProcess().

Don't forget to call SDL_DestroyProcess() to clean up, whether the process process was killed, terminated on its own, or is still running! An opaque handle representing a system process.

See also
sDL_CreateProcess

Since: 3.2.0

Synopsis

Documentation

data SDL_Process Source #

C declaration
struct SDL_Process, defined at SDL3/SDL_process.h 64:16

newtype SDL_ProcessIO Source #

Description of where standard I/O should be directed when creating a process.

If a standard I/O stream is set to SDL_PROCESS_STDIO_INHERITED, it will go to the same place as the application's I/O stream. This is the default for standard output and standard error.

If a standard I/O stream is set to SDL_PROCESS_STDIO_NULL, it is connected to NUL: on Windows and /dev/null on POSIX systems. This is the default for standard input.

If a standard I/O stream is set to SDL_PROCESS_STDIO_APP, it is connected to a new SDL_IOStream that is available to the application. Standard input will be available as sDL_PROP_PROCESS_STDIN_POINTER and allows SDL_GetProcessInput(), standard output will be available as sDL_PROP_PROCESS_STDOUT_POINTER and allows SDL_ReadProcess() and SDL_GetProcessOutput(), and standard error will be available as sDL_PROP_PROCESS_STDERR_POINTER in the properties for the created process.

If a standard I/O stream is set to SDL_PROCESS_STDIO_REDIRECT, it is connected to an existing SDL_IOStream provided by the application. Standard input is provided using sDL_PROP_PROCESS_CREATE_STDIN_POINTER, standard output is provided using sDL_PROP_PROCESS_CREATE_STDOUT_POINTER, and standard error is provided using sDL_PROP_PROCESS_CREATE_STDERR_POINTER in the creation properties. These existing streams should be closed by the application once the new process is created.

In order to use an SDL_IOStream with SDL_PROCESS_STDIO_REDIRECT, it must have SDL_PROP_IOSTREAM_WINDOWS_HANDLE_POINTER or SDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER set. This is true for streams representing files and process I/O.

See also
sDL_CreateProcessWithProperties, sDL_GetProcessProperties, sDL_ReadProcess, sDL_GetProcessInput, sDL_GetProcessOutput
C declaration
enum SDL_ProcessIO, defined at SDL3/SDL_process.h 150:14

Since: 3.2.0

Constructors

SDL_ProcessIO 

Fields

Instances

Instances details
Storable SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Generic SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Associated Types

type Rep SDL_ProcessIO 
Instance details

Defined in SDL3.Sys.Bindgen.Process

type Rep SDL_ProcessIO = D1 ('MetaData "SDL_ProcessIO" "SDL3.Sys.Bindgen.Process" "sdl3-bindgen-sys-0.0.1.0-inplace" 'True) (C1 ('MetaCons "SDL_ProcessIO" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrap") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CUInt)))
Read SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Show SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Eq SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Ord SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Prim SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

CEnum SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Associated Types

type CEnumZ SDL_ProcessIO 
Instance details

Defined in SDL3.Sys.Bindgen.Process

SequentialCEnum SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

HasFFIType SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Associated Types

type FFIType SDL_ProcessIO 
Instance details

Defined in SDL3.Sys.Bindgen.Process

ReadRaw SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

StaticSize SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

WriteRaw SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

HasCField SDL_ProcessIO "unwrap" Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Associated Types

type CFieldType SDL_ProcessIO "unwrap" 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Methods

offset# :: Proxy# SDL_ProcessIO -> Proxy# "unwrap" -> Int #

ty ~ CUInt => HasField "unwrap" SDL_ProcessIO ty Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Methods

hasField :: SDL_ProcessIO -> (ty -> SDL_ProcessIO, ty) #

ty ~ CUInt => HasField "unwrap" (Ptr SDL_ProcessIO) (Ptr ty :: Type) Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

Methods

getField :: Ptr SDL_ProcessIO -> Ptr ty #

type Rep SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

type Rep SDL_ProcessIO = D1 ('MetaData "SDL_ProcessIO" "SDL3.Sys.Bindgen.Process" "sdl3-bindgen-sys-0.0.1.0-inplace" 'True) (C1 ('MetaCons "SDL_ProcessIO" 'PrefixI 'True) (S1 ('MetaSel ('Just "unwrap") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 CUInt)))
type CEnumZ SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

type FFIType SDL_ProcessIO Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

type CFieldType SDL_ProcessIO "unwrap" Source # 
Instance details

Defined in SDL3.Sys.Bindgen.Process

pattern SDL_PROCESS_STDIO_INHERITED :: SDL_ProcessIO Source #

The I/O stream is inherited from the application.

C declaration
SDL_PROCESS_STDIO_INHERITED, defined at SDL3/SDL_process.h 152:5

pattern SDL_PROCESS_STDIO_NULL :: SDL_ProcessIO Source #

The I/O stream is ignored.

C declaration
SDL_PROCESS_STDIO_NULL, defined at SDL3/SDL_process.h 153:5

pattern SDL_PROCESS_STDIO_APP :: SDL_ProcessIO Source #

The I/O stream is connected to a new SDL_IOStream that the application can read or write

C declaration
SDL_PROCESS_STDIO_APP, defined at SDL3/SDL_process.h 154:5

pattern SDL_PROCESS_STDIO_REDIRECT :: SDL_ProcessIO Source #

The I/O stream is redirected to an existing SDL_IOStream.

C declaration
SDL_PROCESS_STDIO_REDIRECT, defined at SDL3/SDL_process.h 155:5

sDL_PROP_PROCESS_CREATE_ARGS_POINTER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_ARGS_POINTER, literal "SDL.process.create.args", defined at SDL3/SDL_process.h 229:9

sDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER, literal "SDL.process.create.environment", defined at SDL3/SDL_process.h 230:9

sDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRING :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRING, literal "SDL.process.create.working_directory", defined at SDL3/SDL_process.h 231:9

sDL_PROP_PROCESS_CREATE_STDIN_NUMBER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_STDIN_NUMBER, literal "SDL.process.create.stdin_option", defined at SDL3/SDL_process.h 232:9

sDL_PROP_PROCESS_CREATE_STDIN_POINTER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_STDIN_POINTER, literal "SDL.process.create.stdin_source", defined at SDL3/SDL_process.h 233:9

sDL_PROP_PROCESS_CREATE_STDOUT_NUMBER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_STDOUT_NUMBER, literal "SDL.process.create.stdout_option", defined at SDL3/SDL_process.h 234:9

sDL_PROP_PROCESS_CREATE_STDOUT_POINTER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_STDOUT_POINTER, literal "SDL.process.create.stdout_source", defined at SDL3/SDL_process.h 235:9

sDL_PROP_PROCESS_CREATE_STDERR_NUMBER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_STDERR_NUMBER, literal "SDL.process.create.stderr_option", defined at SDL3/SDL_process.h 236:9

sDL_PROP_PROCESS_CREATE_STDERR_POINTER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_STDERR_POINTER, literal "SDL.process.create.stderr_source", defined at SDL3/SDL_process.h 237:9

sDL_PROP_PROCESS_CREATE_STDERR_TO_STDOUT_BOOLEAN :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_STDERR_TO_STDOUT_BOOLEAN, literal "SDL.process.create.stderr_to_stdout", defined at SDL3/SDL_process.h 238:9

sDL_PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN, literal "SDL.process.create.background", defined at SDL3/SDL_process.h 239:9

sDL_PROP_PROCESS_CREATE_CMDLINE_STRING :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_CREATE_CMDLINE_STRING, literal "SDL.process.create.cmdline", defined at SDL3/SDL_process.h 240:9

sDL_PROP_PROCESS_PID_NUMBER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_PID_NUMBER, literal "SDL.process.pid", defined at SDL3/SDL_process.h 273:9

sDL_PROP_PROCESS_STDIN_POINTER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_STDIN_POINTER, literal "SDL.process.stdin", defined at SDL3/SDL_process.h 274:9

sDL_PROP_PROCESS_STDOUT_POINTER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_STDOUT_POINTER, literal "SDL.process.stdout", defined at SDL3/SDL_process.h 275:9

sDL_PROP_PROCESS_STDERR_POINTER :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_STDERR_POINTER, literal "SDL.process.stderr", defined at SDL3/SDL_process.h 276:9

sDL_PROP_PROCESS_BACKGROUND_BOOLEAN :: ByteString Source #

C declaration
macro SDL_PROP_PROCESS_BACKGROUND_BOOLEAN, literal "SDL.process.background", defined at SDL3/SDL_process.h 277:9