читать () стандартный ввод в с?

У меня есть быстрый маленький вопрос, связанный с командой read ().

Я действительно ржавый в C, и, к сожалению, мое текущее назначение - программирование на C. Нам нужно читать stdin, используя read (), а не fgets и тому подобное.

Итак, у меня есть простой цикл while:

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

Поэтому я не уверен, как остановить этот цикл нажатием клавиши ввода (конец строки), поэтому у меня есть код прерывания, хотя я не знаю, правильно ли это сделано.

Вся цель, которую я пытаюсь достичь, состоит в том, чтобы поместить ввод из stdin в указатель 'input'

(Я действительно плохо разбираюсь в указателях, так что терпите меня :))

Моя проблема в том, что я получаю ошибки сегментации, когда я нажимаю ввод. Я хотел бы использовать Fgets, потому что тогда все это будет решено с помощью простого

input = fgets(buffer, 256, stdin);

Черт возьми домашнее задание :( В любом случае, если бы кто-нибудь из вас мог указать мне правильное направление, я был бы очень признателен. Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос