26 lines
928 B
C
26 lines
928 B
C
#pragma once
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <stdint.h>
|
|
#include <Windows.h>
|
|
typedef struct {
|
|
|
|
uint64_t userdata;
|
|
FILE* in;
|
|
FILE* out;
|
|
FILE* err;
|
|
|
|
// OS-dependent handle to the process
|
|
uint32_t _proc_hdl;
|
|
|
|
} uniproc_process;
|
|
|
|
uniproc_process uniproc_create_process(const char* cmd, const size_t num_args, const char** argv);
|
|
void uniproc_await_processes(const uniproc_process* p, int* return_codes, const size_t num_processes);
|
|
void uniproc_close_process(uniproc_process* p);
|
|
int uniproc_are_processes_finished(const uniproc_process* p, const size_t num_processes);
|
|
void uniproc_nullify_processes(uniproc_process* p, const size_t num_processes);
|
|
int uniproc_is_process_null(const uniproc_process* p);
|
|
void uniproc_await_any_processes(const uniproc_process* p, const size_t num_processes);
|
|
void uniproc_set_userdata(uniproc_process* p, void const* userdata);
|
|
void* uniproc_get_userdata(uniproc_process* p); |