Hola,
Posiblemente te sea de alguna ayuda,
Código C:
Ver original// _ssize_t r = read(STDIN_FILENO, buffer, sizeof(buffer) - 1)
// buffer[r] = NULL;
buffer[read(STDIN_FILENO, buffer, sizeof(buffer) - 1)] = NULL;
Pero read() puede regresar un valor negativo para informar de error.
Saludos,