grpc
third_party
libuv
docs
code
tty-gravity
libuv/docs/code/tty-gravity/main.c
Go to the documentation of this file.
1
#include <stdio.h>
2
#include <
string.h
>
3
#include <unistd.h>
4
#include <
uv.h
>
5
6
uv_loop_t
*
loop
;
7
uv_tty_t
tty
;
8
uv_timer_t
tick
;
9
uv_write_t
write_req
;
10
int
width
,
height
;
11
int
pos
= 0;
12
char
*
message
=
" Hello TTY "
;
13
14
void
update
(
uv_timer_t
*
req
) {
15
char
data
[500];
16
17
uv_buf_t
buf
;
18
buf
.base =
data
;
19
buf
.len = sprintf(
data
,
"\033[2J\033[H\033[%dB\033[%luC\033[42;37m%s"
,
20
pos
,
21
(
unsigned
long
) (
width
-strlen(
message
))/2,
22
message
);
23
uv_write
(&
write_req
, (
uv_stream_t
*) &
tty
, &
buf
, 1, NULL);
24
25
pos
++;
26
if
(
pos
>
height
) {
27
uv_tty_reset_mode
();
28
uv_timer_stop
(&
tick
);
29
}
30
}
31
32
int
main
() {
33
loop
=
uv_default_loop
();
34
35
uv_tty_init
(
loop
, &
tty
, STDOUT_FILENO, 0);
36
uv_tty_set_mode
(&
tty
, 0);
37
38
if
(
uv_tty_get_winsize
(&
tty
, &
width
, &
height
)) {
39
fprintf(
stderr
,
"Could not get TTY information\n"
);
40
uv_tty_reset_mode
();
41
return
1;
42
}
43
44
fprintf(
stderr
,
"Width %d, height %d\n"
,
width
,
height
);
45
uv_timer_init
(
loop
, &
tick
);
46
uv_timer_start
(&
tick
,
update
, 200, 200);
47
return
uv_run
(
loop
,
UV_RUN_DEFAULT
);
48
}
width
int width
Definition:
libuv/docs/code/tty-gravity/main.c:10
loop
uv_loop_t * loop
Definition:
libuv/docs/code/tty-gravity/main.c:6
pos
int pos
Definition:
libuv/docs/code/tty-gravity/main.c:11
tty
uv_tty_t tty
Definition:
libuv/docs/code/tty-gravity/main.c:7
string.h
uv_tty_s
Definition:
uv.h:704
buf
voidpf void * buf
Definition:
bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
write_req
Definition:
benchmark-tcp-write-batch.c:31
uv_run
UV_EXTERN int uv_run(uv_loop_t *, uv_run_mode mode)
Definition:
unix/core.c:361
uv_timer_stop
UV_EXTERN int uv_timer_stop(uv_timer_t *handle)
Definition:
timer.c:97
main
int main()
Definition:
libuv/docs/code/tty-gravity/main.c:32
message
char * message
Definition:
libuv/docs/code/tty-gravity/main.c:12
python_utils.port_server.stderr
stderr
Definition:
port_server.py:51
uv_stream_s
Definition:
uv.h:491
uv_default_loop
UV_EXTERN uv_loop_t * uv_default_loop(void)
Definition:
uv-common.c:733
uv_write
UV_EXTERN int uv_write(uv_write_t *req, uv_stream_t *handle, const uv_buf_t bufs[], unsigned int nbufs, uv_write_cb cb)
Definition:
unix/stream.c:1492
req
static uv_connect_t req
Definition:
test-connection-fail.c:30
UV_RUN_DEFAULT
@ UV_RUN_DEFAULT
Definition:
uv.h:254
tick
uv_timer_t tick
Definition:
libuv/docs/code/tty-gravity/main.c:8
data
char data[kBufferLength]
Definition:
abseil-cpp/absl/strings/internal/str_format/float_conversion.cc:1006
uv_timer_s
Definition:
uv.h:850
uv.h
uv_buf_t
Definition:
unix.h:121
uv_tty_get_winsize
UV_EXTERN int uv_tty_get_winsize(uv_tty_t *, int *width, int *height)
Definition:
unix/tty.c:297
uv_tty_init
UV_EXTERN int uv_tty_init(uv_loop_t *, uv_tty_t *, uv_file fd, int readable)
Definition:
unix/tty.c:123
uv_tty_set_mode
UV_EXTERN int uv_tty_set_mode(uv_tty_t *, uv_tty_mode_t mode)
Definition:
unix/tty.c:250
uv_write_s
Definition:
uv.h:522
uv_timer_start
UV_EXTERN int uv_timer_start(uv_timer_t *handle, uv_timer_cb cb, uint64_t timeout, uint64_t repeat)
Definition:
timer.c:66
uv_loop_s
Definition:
uv.h:1767
uv_timer_init
UV_EXTERN int uv_timer_init(uv_loop_t *, uv_timer_t *handle)
Definition:
timer.c:58
write_req
uv_write_t write_req
Definition:
libuv/docs/code/tty-gravity/main.c:9
update
void update(uv_timer_t *req)
Definition:
libuv/docs/code/tty-gravity/main.c:14
uv_tty_reset_mode
UV_EXTERN int uv_tty_reset_mode(void)
Definition:
unix/tty.c:378
height
int height
Definition:
libuv/docs/code/tty-gravity/main.c:10
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:17