read () stdin en c?

Tengo una pequeña pregunta rápida que involucra el comando read ().

Estoy realmente oxidado en C, y desafortunadamente, mi tarea actual me tiene programando en C. Necesitamos leer stdin usando read () y no fgets y cosas similares.

Así que tengo un ciclo while simple:

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));
                }

Así que no estoy seguro de cómo hacer que este bucle se detenga al presionar enter (final de línea), por eso tengo el código de interrupción, aunque no sé si se hizo correctamente.

Todo el objetivo que estoy tratando de lograr es poner la entrada de stdin en el puntero 'input'

(Soy muy malo para entender los punteros, así que tengan paciencia conmigo :))

Mi problema es que obtengo fallas de segmentación cuando presiono enter. Desearía poder usar fgets porque entonces todo esto se resolvería con una simple

input = fgets(buffer, 256, stdin);

Darn tarea :( De todos modos, si alguno de ustedes pudiera señalarme en la dirección correcta, realmente lo agradecería. ¡Gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta