ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
process.h
Go to the documentation of this file.
1#pragma once
2
19#include <stdio.h>
20#include "../asciichat_errno.h"
21
22// ============================================================================
23// Process ID Type (pid_t)
24// ============================================================================
25
26#ifdef _WIN32
33#ifndef _PID_T_DEFINED
34typedef int pid_t;
35#define _PID_T_DEFINED
36#endif
37#else
38/* POSIX platforms - pid_t is defined in <sys/types.h> */
39#include <sys/types.h>
40#endif
41
42#ifdef __cplusplus
43extern "C" {
44#endif
45
56pid_t platform_get_pid(void);
57
88asciichat_error_t platform_popen(const char *name, const char *command, const char *mode, FILE **out_stream);
89
109asciichat_error_t platform_pclose(FILE **stream_ptr);
110
123// ============================================================================
124// Process Spawning
125// ============================================================================
126
136typedef struct platform_process platform_process_t;
137
160asciichat_error_t platform_process_spawn(platform_process_t **process_out, const char *path, const char *const *argv,
161 int stdin_fd, int stdout_fd, int stderr_fd);
162
178asciichat_error_t platform_process_wait(platform_process_t *process, int timeout_ms, int *exit_code_out);
179
191
205
219
220#ifdef __cplusplus
221}
222#endif
223
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:49
void platform_process_destroy(platform_process_t *process)
Free process handle.
asciichat_error_t platform_popen(const char *name, const char *command, const char *mode, FILE **out_stream)
Execute a command and return a file stream for reading/writing.
asciichat_error_t platform_process_spawn(platform_process_t **process_out, const char *path, const char *const *argv, int stdin_fd, int stdout_fd, int stderr_fd)
Spawn a child process.
pid_t platform_get_pid(void)
Get the current process ID.
Definition wasm/system.c:61
asciichat_error_t platform_process_kill(platform_process_t *process)
Terminate a process.
bool platform_process_is_alive(platform_process_t *process)
Check if process is still running.
struct platform_process platform_process_t
Opaque process handle.
Definition process.h:136
asciichat_error_t platform_pclose(FILE **stream_ptr)
Close a process stream opened with platform_popen()
asciichat_error_t platform_process_wait(platform_process_t *process, int timeout_ms, int *exit_code_out)
Wait for process to terminate with timeout.