#include #include #define BUFFER_SIZE 1024 #define log(F,V) printf("%s:%d:%s("F")\n", __FILE__, __LINE__, __func__, V); static void on_read (uv_stream_t *stream, ssize_t nread, const uv_buf_t *buffer) { log("nread=%zd", nread); } static void on_alloc (uv_handle_t *handle, size_t suggested_size, uv_buf_t *buffer) { log("size=%zd", suggested_size); assert(handle->data); buffer->base = handle->data; buffer->len = BUFFER_SIZE; } int main(int argc, char const *argv[]) { uv_loop_t loop; uv_tty_t stdin_tty; int err; char buffer[BUFFER_SIZE]; err = uv_loop_init(&loop); assert(err >= 0); err = uv_tty_init(&loop, &stdin_tty, 0, 0); assert(err >= 0); stdin_tty.data = NULL; err = uv_read_start((uv_stream_t *)&stdin_tty, on_alloc, on_read); assert(err >= 0); stdin_tty.data = buffer; log("%s", "server started!"); err = uv_run(&loop, UV_RUN_DEFAULT); assert(err >= 0); return 0; }