Печать содержимого файла на стандартный низкоуровневый ввод-вывод в C

Как бы я распечатал содержимое файла, к которому я добавил, используя только низкоуровневые функции ввода / вывода?

Самое близкое, что я получаю - это печать текста, который я использую для добавления Пример:

file1.txt = dog
file2.txt = cat

Я хочу распечатать файл file2.txt, который теперь является "catdog". Как бы я это сделал?

Как уже было сказано, я могу заставить "собаку" печатать. Я также успешно добавил файл. Я знаю, что это, вероятно, очень простое решение, но я часами чесал голову.

Мой код

while (1) {
        if ((bufchar = read(fdin1, buf, sizeof(buf))) > 0) {
                bp = buf;   // Pointer to next byte to write.
                while (bufchar > 0) {
                        if ((wrchar = write(fdin2, bp, bufchar)) < 0)
                                perror("Write failed");
                        bufchar -= wrchar;   // Update.
                        bp += wrchar;
                }
        }
        else if (bufchar == 0) {  // EOF reached.
                break;
        }
        else
                perror("Read failed");
}

1 ответ

Несколько слов о том, что если вы добавляете файл file2.txt, это будет "catdog", а не наоборот. Если вы только можете заставить собаку выписать, физически зайдите в файл, чтобы убедиться, что вы действительно добавляете файл, а не просто перезаписываете файл.

Вот некоторые подробности о низкоуровневом файловом вводе / выводе. Прочитайте две верхние ссылки для открытия и закрытия файлов и примитивных операций ввода-вывода. Не видя ни одного вашего кода, вам трудно помочь, хотя, возможно, вы неправильно закрываете файл и ваша добавленная строка не сохраняется...

Другие вопросы по тегам