libuv/docs/code/proc-streams/main.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <string.h>
3 #include <inttypes.h>
4 
5 #include <uv.h>
6 
10 
11 void on_exit(uv_process_t *req, int64_t exit_status, int term_signal) {
12  fprintf(stderr, "Process exited with status %" PRId64 ", signal %d\n", exit_status, term_signal);
13  uv_close((uv_handle_t*) req, NULL);
14 }
15 
16 int main() {
18 
19  size_t size = 500;
20  char path[size];
21  uv_exepath(path, &size);
22  strcpy(path + (strlen(path) - strlen("proc-streams")), "test");
23 
24  char* args[2];
25  args[0] = path;
26  args[1] = NULL;
27 
28  /* ... */
29 
30  options.stdio_count = 3;
31  uv_stdio_container_t child_stdio[3];
32  child_stdio[0].flags = UV_IGNORE;
33  child_stdio[1].flags = UV_IGNORE;
34  child_stdio[2].flags = UV_INHERIT_FD;
35  child_stdio[2].data.fd = 2;
36  options.stdio = child_stdio;
37 
39  options.file = args[0];
40  options.args = args;
41 
42  int r;
43  if ((r = uv_spawn(loop, &child_req, &options))) {
44  fprintf(stderr, "%s\n", uv_strerror(r));
45  return 1;
46  }
47 
48  return uv_run(loop, UV_RUN_DEFAULT);
49 }
uv_process_options_s
Definition: uv.h:940
uv_process_s
Definition: uv.h:1037
child_req
uv_process_t child_req
Definition: libuv/docs/code/proc-streams/main.c:8
UV_IGNORE
@ UV_IGNORE
Definition: uv.h:911
string.h
uv_process_options_s::exit_cb
uv_exit_cb exit_cb
Definition: uv.h:941
uv_strerror
const UV_EXTERN char * uv_strerror(int err)
Definition: uv-common.c:212
check_documentation.path
path
Definition: check_documentation.py:57
uv_run
UV_EXTERN int uv_run(uv_loop_t *, uv_run_mode mode)
Definition: unix/core.c:361
python_utils.port_server.stderr
stderr
Definition: port_server.py:51
uv_close
UV_EXTERN void uv_close(uv_handle_t *handle, uv_close_cb close_cb)
Definition: unix/core.c:112
main
int main()
Definition: libuv/docs/code/proc-streams/main.c:16
uv_process_options_s::file
const char * file
Definition: uv.h:942
uv_default_loop
UV_EXTERN uv_loop_t * uv_default_loop(void)
Definition: uv-common.c:733
asyncio_get_stats.args
args
Definition: asyncio_get_stats.py:40
uv_stdio_container_s::flags
uv_stdio_flags flags
Definition: uv.h:932
uv_process_options_s::stdio
uv_stdio_container_t * stdio
Definition: uv.h:975
int64_t
signed __int64 int64_t
Definition: stdint-msvc2008.h:89
uv_process_options_s::args
char ** args
Definition: uv.h:949
req
static uv_connect_t req
Definition: test-connection-fail.c:30
UV_RUN_DEFAULT
@ UV_RUN_DEFAULT
Definition: uv.h:254
uv_process_options_s::stdio_count
int stdio_count
Definition: uv.h:974
UV_INHERIT_FD
@ UV_INHERIT_FD
Definition: uv.h:913
uv_stdio_container_s
Definition: uv.h:931
uv_stdio_container_s::fd
int fd
Definition: uv.h:936
uv_spawn
UV_EXTERN int uv_spawn(uv_loop_t *loop, uv_process_t *handle, const uv_process_options_t *options)
Definition: unix/process.c:408
uv_exepath
UV_EXTERN int uv_exepath(char *buffer, size_t *size)
Definition: aix-common.c:79
uv.h
on_exit
void on_exit(uv_process_t *req, int64_t exit_status, int term_signal)
Definition: libuv/docs/code/proc-streams/main.c:11
options
uv_process_options_t options
Definition: libuv/docs/code/proc-streams/main.c:9
fix_build_deps.r
r
Definition: fix_build_deps.py:491
loop
uv_loop_t * loop
Definition: libuv/docs/code/proc-streams/main.c:7
uv_stdio_container_s::data
union uv_stdio_container_s::@399 data
uv_handle_s
Definition: uv.h:441
uv_loop_s
Definition: uv.h:1767
size
voidpf void uLong size
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136


grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:17