| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
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
- data SDL_Process
- newtype SDL_ProcessIO = SDL_ProcessIO {}
- pattern SDL_PROCESS_STDIO_INHERITED :: SDL_ProcessIO
- pattern SDL_PROCESS_STDIO_NULL :: SDL_ProcessIO
- pattern SDL_PROCESS_STDIO_APP :: SDL_ProcessIO
- pattern SDL_PROCESS_STDIO_REDIRECT :: SDL_ProcessIO
- sDL_PROP_PROCESS_CREATE_ARGS_POINTER :: ByteString
- sDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER :: ByteString
- sDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRING :: ByteString
- sDL_PROP_PROCESS_CREATE_STDIN_NUMBER :: ByteString
- sDL_PROP_PROCESS_CREATE_STDIN_POINTER :: ByteString
- sDL_PROP_PROCESS_CREATE_STDOUT_NUMBER :: ByteString
- sDL_PROP_PROCESS_CREATE_STDOUT_POINTER :: ByteString
- sDL_PROP_PROCESS_CREATE_STDERR_NUMBER :: ByteString
- sDL_PROP_PROCESS_CREATE_STDERR_POINTER :: ByteString
- sDL_PROP_PROCESS_CREATE_STDERR_TO_STDOUT_BOOLEAN :: ByteString
- sDL_PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN :: ByteString
- sDL_PROP_PROCESS_CREATE_CMDLINE_STRING :: ByteString
- sDL_PROP_PROCESS_PID_NUMBER :: ByteString
- sDL_PROP_PROCESS_STDIN_POINTER :: ByteString
- sDL_PROP_PROCESS_STDOUT_POINTER :: ByteString
- sDL_PROP_PROCESS_STDERR_POINTER :: ByteString
- sDL_PROP_PROCESS_BACKGROUND_BOOLEAN :: ByteString
Documentation
data SDL_Process Source #
- C declaration
struct SDL_Process, defined atSDL3/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 and allows sDL_PROP_PROCESS_STDIN_POINTERSDL_GetProcessInput(), standard output will be available as and allows sDL_PROP_PROCESS_STDOUT_POINTERSDL_ReadProcess() and SDL_GetProcessOutput(), and standard error will be available as in the properties for the created process.sDL_PROP_PROCESS_STDERR_POINTER
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 , standard output is provided using sDL_PROP_PROCESS_CREATE_STDIN_POINTER, and standard error is provided using sDL_PROP_PROCESS_CREATE_STDOUT_POINTER in the creation properties. These existing streams should be closed by the application once the new process is created.sDL_PROP_PROCESS_CREATE_STDERR_POINTER
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 atSDL3/SDL_process.h 150:14
Since: 3.2.0
Constructors
| SDL_ProcessIO | |
Instances
pattern SDL_PROCESS_STDIO_INHERITED :: SDL_ProcessIO Source #
The I/O stream is inherited from the application.
- C declaration
SDL_PROCESS_STDIO_INHERITED, defined atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/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 atSDL3/SDL_process.h 277:9