read () stdin em c?

Tenho uma pequena e rápida pergunta envolvendo o comando read (

Estou muito enferrujado em C e, infelizmente, minha tarefa atual me programa em C. Precisamos ler stdin usando o read () e não fgets e afin

Então eu tenho um loop while simples:

int n, i;
char buffer[257], *input;

while((n=read(fileno(stdin), buffer, 256)) > 0)
                {
                        buffer[n] ='\0';
                        if(buffer[n] = '\n') break;
                        write(input, buffer, strlen(buffer));
                }

Portanto, não tenho certeza de como fazer esse loop parar ao pressionar enter (fim de linha); é por isso que tenho o código de interrupção, embora não saiba se isso foi feito corretament

Todo o objetivo que estou tentando realizar é colocar a entrada de stdin no ponteiro 'input'

(Sou péssimo em entender os ponteiros, tenha paciência comigo :))

Meu problema é que estou recebendo falhas de segmentação quando pressiono enter. Eu gostaria de poder usar o fgets, porque tudo isso seria resolvido com um simples

input = fgets(buffer, 256, stdin);

Darn lição de casa :( De qualquer forma, se algum de vocês pudesse me apontar na direção certa, eu realmente aprecio isso. Obrigado!

questionAnswers(4)

yourAnswerToTheQuestion