read () de stdin não ignora nova linha

Eu estou usando a instrução condicional a seguir para ler a entrada padrão.

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

Ao inserir dados da entrada padrão, geralmente o usuário pressiona entrar quando concluído. Masread() considera '\ n' como entrada também em qual cason = 1 e o condicional não é avaliado como falso. Existe uma maneira de tornar a condicional avaliada como falsa quando o usuário pressiona entrar (sem inserir nada) na entrada padrão além de verificar o conteúdo do buf. Existe alguma outra função que não sejaread() que eu poderia usar para esse propósito?

Quanto a isso, o que pode ser uma maneira de ler determinar o final da entrada quando a entrada vem da entrada padrão (stdin)?

questionAnswers(5)

yourAnswerToTheQuestion