read () de stdin no ignora la nueva línea

Estoy usando la siguiente declaración condicional para leer de la entrada estándar.

if ((n = read(0,buf,sizeof(buf))) != 0)

Cuando ingresa datos de una entrada estándar, generalmente el usuario presiona enter cuando termina. Peroread() considera '\ n' como entrada también, en cuyo cason = 1 y el condicional no se evalúa como falso. ¿Hay una manera de hacer que la evaluación condicional sea falsa cuando el usuario presiona entrar (sin ingresar nada) en la entrada estándar, además de verificar el contenido de buf. ¿Hay alguna otra función que no searead() que podría usar para este propósito?

Para el caso, ¿cuál puede ser una forma de lectura para determinar el final de la entrada cuando la entrada proviene de la entrada estándar (estándar)?

Respuestas a la pregunta(5)

Su respuesta a la pregunta