Skip to main content

SDL_CreateProcessWithProperties

Function SDL_CreateProcessWithProperties 

Source
pub unsafe extern "C" fn SDL_CreateProcessWithProperties(
    props: SDL_PropertiesID,
) -> *mut SDL_Process
Expand description

Create a new process with the specified properties.

These are the supported properties:

  • SDL_PROP_PROCESS_CREATE_ARGS_POINTER: an array of strings containing the program to run, any arguments, and a NULL pointer, e.g. const char *args[] = { “myprogram”, “argument”, NULL }. This is a required property.
  • SDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER: an SDL_Environment pointer. If this property is set, it will be the entire environment for the process, otherwise the current environment is used.
  • SDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRING: a UTF-8 encoded string representing the working directory for the process, defaults to the current working directory.
  • SDL_PROP_PROCESS_CREATE_STDIN_NUMBER: an SDL_ProcessIO value describing where standard input for the process comes from, defaults to SDL_PROCESS_STDIO_NULL.
  • SDL_PROP_PROCESS_CREATE_STDIN_POINTER: an SDL_IOStream pointer used for standard input when SDL_PROP_PROCESS_CREATE_STDIN_NUMBER is set to SDL_PROCESS_STDIO_REDIRECT.
  • SDL_PROP_PROCESS_CREATE_STDOUT_NUMBER: an SDL_ProcessIO value describing where standard output for the process goes to, defaults to SDL_PROCESS_STDIO_INHERITED.
  • SDL_PROP_PROCESS_CREATE_STDOUT_POINTER: an SDL_IOStream pointer used for standard output when SDL_PROP_PROCESS_CREATE_STDOUT_NUMBER is set to SDL_PROCESS_STDIO_REDIRECT.
  • SDL_PROP_PROCESS_CREATE_STDERR_NUMBER: an SDL_ProcessIO value describing where standard error for the process goes to, defaults to SDL_PROCESS_STDIO_INHERITED.
  • SDL_PROP_PROCESS_CREATE_STDERR_POINTER: an SDL_IOStream pointer used for standard error when SDL_PROP_PROCESS_CREATE_STDERR_NUMBER is set to SDL_PROCESS_STDIO_REDIRECT.
  • SDL_PROP_PROCESS_CREATE_STDERR_TO_STDOUT_BOOLEAN: true if the error output of the process should be redirected into the standard output of the process. This property has no effect if SDL_PROP_PROCESS_CREATE_STDERR_NUMBER is set.
  • SDL_PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN: true if the process should run in the background. In this case the default input and output is SDL_PROCESS_STDIO_NULL and the exitcode of the process is not available, and will always be 0.
  • SDL_PROP_PROCESS_CREATE_CMDLINE_STRING: a string containing the program to run and any parameters. This string is passed directly to CreateProcess on Windows, and does nothing on other platforms. This property is only important if you want to start programs that does non-standard command-line processing, and in most cases using SDL_PROP_PROCESS_CREATE_ARGS_POINTER is sufficient.

On POSIX platforms, wait() and waitpid(-1, …) should not be called, and SIGCHLD should not be ignored or handled because those would prevent SDL from properly tracking the lifetime of the underlying process. You should use SDL_WaitProcess() instead.

Parameter: props the properties to use. Returns: the newly created and running process, or NULL if the process couldn’t be created.

Thread Safety: It is safe to call this function from any thread.

Available Since: This function is available since SDL 3.2.0.

See Also: SDL_CreateProcess See Also: SDL_GetProcessProperties See Also: SDL_ReadProcess See Also: SDL_GetProcessInput See Also: SDL_GetProcessOutput See Also: SDL_KillProcess See Also: SDL_WaitProcess See Also: SDL_DestroyProcess