grpc
third_party
libuv
docs
code
proc-streams
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
7
uv_loop_t
*
loop
;
8
uv_process_t
child_req
;
9
uv_process_options_t
options
;
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
() {
17
loop
=
uv_default_loop
();
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
38
options
.
exit_cb
=
on_exit
;
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