ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
process.h
Go to the documentation of this file.
1#pragma once
2
18
19#include <stdio.h>
20#include <stdint.h>
21#include "api.h"
22#include "../asciichat_errno.h"
23
30/* Snapshot of this process; unsupported fields remain zero. */
32
33// ============================================================================
34// Process ID Type (pid_t)
35// ============================================================================
36
37#ifdef _WIN32
45#ifndef _PID_T_DEFINED
46typedef int pid_t;
47#define _PID_T_DEFINED
48#endif
49#else
50/* POSIX platforms - pid_t is defined in <sys/types.h> */
51#include <sys/types.h>
52#endif
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
60
71pid_t platform_get_pid(void);
72
82
96
111ASCIICHAT_API asciichat_error_t platform_process_title_set_args(const char *prefix, const char *mode, int argc,
112 char **argv, int mode_arg_index);
113
120
151
171
181
183
184// ============================================================================
185// Process Spawning
186// ============================================================================
187
197typedef struct platform_process platform_process_t;
198
221asciichat_error_t platform_process_spawn(platform_process_t **process_out, const char *path, const char *const *argv,
222 int stdin_fd, int stdout_fd, int stderr_fd);
223
239asciichat_error_t platform_process_wait(platform_process_t *process, int timeout_ms, int *exit_code_out);
240
252
266
280
281#ifdef __cplusplus
282}
283#endif
284
286asciichat_error_t platform_popen(const char *name, const char *command, const char *mode, FILE **out_stream);
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
unsigned long long uint64_t
Definition common.h:63
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
void platform_process_destroy(platform_process_t *process)
Free process handle.
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.
asciichat_error_t platform_process_title_set_args(const char *prefix, const char *mode, int argc, char **argv, int mode_arg_index)
Set "ascii-chat: <mode> mode - <arguments>" with secret values redacted.
pid_t platform_get_pid(void)
Get the current process ID.
asciichat_error_t platform_process_title_set(const char *title)
Update the OS process naming surfaces through one platform API.
asciichat_error_t process_utf8_arguments(int *argc, char ***argv)
asciichat_error_t platform_process_title_init(int argc, char ***argv)
Reserve process-title storage before option parsing or environment use.
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:197
#define ASCIICHAT_API
Export symbols on Unix platforms (Linux, macOS).
Definition api.h:82
asciichat_error_t platform_process_stats(platform_process_stats_t *out)
asciichat_error_t platform_process_wait(platform_process_t *process, int timeout_ms, int *exit_code_out)
Wait for process to terminate with timeout.
void platform_process_title_destroy(void)
Restore Unix argument storage and release title allocations.
asciichat_error_t platform_popen(const char *name, const char *command, const char *mode, FILE **out_stream)
asciichat_error_t platform_pclose(FILE **stream_ptr)
static bool size_t gotel_query_t * out
Definition queries.h:8