Description of where standard I/O should be directed when creating a process.
Defined in <SDL3/SDL_process.h>
typedef enum SDL_ProcessIO
{/**< The I/O stream is inherited from the application. */
SDL_PROCESS_STDIO_INHERITED, /**< The I/O stream is ignored. */
SDL_PROCESS_STDIO_NULL, /**< The I/O stream is connected to a new SDL_IOStream that the application can read or write */
SDL_PROCESS_STDIO_APP, /**< The I/O stream is redirected to an existing SDL_IOStream. */
SDL_PROCESS_STDIO_REDIRECT } SDL_ProcessIO;
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.
This enum is available since SDL 3.1.3.