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 
11 int pos = 0;
12 char *message = " Hello TTY ";
13 
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) {
29  }
30 }
31 
32 int main() {
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");
41  return 1;
42  }
43 
44  fprintf(stderr, "Width %d, height %d\n", width, height);
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