ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
system.h File Reference

Cross-platform system functions interface for ascii-chat. More...

Go to the source code of this file.

Data Structures

struct  platform_signal_handler_t
 Signal handler descriptor for bulk registration. More...
 
struct  platform_stderr_redirect_handle_t
 Handle for temporary stderr redirection. More...
 
struct  platform_binary_match_t
 Find which binary(ies) contain a given address. More...
 

Macros

#define SAFE_IGNORE_PRINTF_RESULT(expr)   ((void)(expr))
 

Typedefs

typedef void(* signal_handler_t) (int)
 Signal handler function type.
 

Functions

void platform_install_crash_handler (void)
 Install crash handlers for the application.
 
asciichat_error_t platform_init (void)
 Initialize platform-specific subsystems.
 
void platform_destroy (void)
 Cleanup platform-specific subsystems.
 
void platform_force_exit (int exit_code)
 Forcefully terminate the process immediately without cleanup.
 
void platform_sleep_ms (unsigned int ms)
 Sleep for a specified number of milliseconds.
 
uint64_t platform_get_monotonic_time_us (void)
 Get monotonic time in microseconds.
 
asciichat_error_t platform_request_timer_precision (int precision)
 Request coarse (reduced resolution) timer precision.
 
asciichat_error_t platform_restore_timer_resolution (void)
 Restore default timer precision.
 
asciichat_error_t platform_enable_keepawake (void)
 Enable system sleep prevention (keepawake mode)
 
void platform_disable_keepawake (void)
 Disable system sleep prevention (allow OS to sleep)
 
asciichat_error_t platform_localtime (const time_t *timer, struct tm *result)
 Platform-safe localtime wrapper.
 
asciichat_error_t platform_gtime (const time_t *timer, struct tm *result)
 Platform-safe gmtime wrapper.
 
const char * platform_get_username (void)
 Get the current username.
 
signal_handler_t platform_signal (int sig, signal_handler_t handler)
 Set a signal handler.
 
asciichat_error_t platform_register_signal_handlers (const platform_signal_handler_t *handlers, int count)
 Register multiple signal handlers at once.
 
const char * platform_getenv (const char *name)
 Get an environment variable value.
 
int platform_setenv (const char *name, const char *value)
 Set an environment variable.
 
int platform_unsetenv (const char *name)
 Remove an environment variable.
 
void platform_raise_fd_limit (unsigned int limit)
 Raise the file descriptor limit for the current process.
 
platform_stderr_redirect_handle_t platform_stderr_redirect_to_null (void)
 Redirect stderr to /dev/null temporarily.
 
void platform_stderr_restore (platform_stderr_redirect_handle_t handle)
 Restore stderr from a redirect handle.
 
platform_stderr_redirect_handle_t platform_stdout_stderr_redirect_to_null (void)
 Redirect both stdout and stderr to /dev/null (restorable)
 
void platform_stdout_stderr_restore (platform_stderr_redirect_handle_t handle)
 Restore stdout and stderr after platform_stdout_stderr_redirect_to_null()
 
void platform_stdio_redirect_to_null_permanent (void)
 Permanently redirect stderr and stdout to /dev/null.
 
int safe_snprintf (char *buffer, size_t buffer_size, const char *format,...)
 Platform-safe snprintf wrapper.
 
int safe_fprintf (FILE *stream, const char *format,...)
 Platform-safe fprintf wrapper.
 
int safe_vsnprintf (char *buffer, size_t buffer_size, const char *format, va_list ap)
 Platform-safe vsnprintf wrapper.
 
asciichat_error_t platform_memcpy (void *dest, size_t dest_size, const void *src, size_t count)
 Platform-safe memcpy wrapper.
 
asciichat_error_t platform_memset (void *dest, size_t dest_size, int ch, size_t count)
 Platform-safe memset wrapper.
 
asciichat_error_t platform_memmove (void *dest, size_t dest_size, const void *src, size_t count)
 Platform-safe memmove wrapper.
 
asciichat_error_t platform_strcpy (char *dest, size_t dest_size, const char *src)
 Platform-safe strcpy wrapper.
 
int platform_get_last_error (void)
 Get the last system error code.
 
const char * platform_strerror (int errnum)
 Get human-readable error message for a system error code.
 
asciichat_error_t platform_resolve_hostname_to_ipv4 (const char *hostname, char *ipv4_out, size_t ipv4_out_size)
 Resolve hostname to IPv4 address.
 
asciichat_error_t platform_load_system_ca_certs (char **pem_data_out, size_t *pem_size_out)
 Load system CA certificates for TLS/HTTPS.
 
int platform_execute_subprocess (const char *executable, const char **argv, char *output_buffer, size_t output_size)
 Execute a subprocess and optionally capture its output.
 
size_t platform_write_all (int fd, const void *buf, size_t count)
 Write all bytes to a file descriptor, handling partial writes.
 
ssize_t platform_write (int fd, const void *buf, size_t count)
 Safe file write (write replacement)
 
int get_binary_file_address_offsets (const void *addr, platform_binary_match_t *matches, int max_matches)
 Get binary that contains address on Linux via /proc/self/maps.
 

Detailed Description

Cross-platform system functions interface for ascii-chat.

Definition in file system.h.