static size_t diag_read(void *buf, size_t size, size_t count, void *file) { char *ch_buf = (char *) buf; int n = count * size; if (nonblocking) { for (int i = 0; i < n; ++i) { if (!diag_kbhit()) { if (0 == i) { return -EAGAIN; } return i; } if (save_to_buf(ch_buf, diag_getc())) { ch_buf++; } } } else { int i = n; while (i--) { if (save_to_buf(ch_buf, diag_getc())) { ch_buf++; } } } return n; }
int race_is_car_moved(void) { return !diag_kbhit() && ' ' == diag_getc(); }