Печать содержимого файла на стандартный низкоуровневый ввод-вывод в 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", а не наоборот. Если вы только можете заставить собаку выписать, физически зайдите в файл, чтобы убедиться, что вы действительно добавляете файл, а не просто перезаписываете файл.
Вот некоторые подробности о низкоуровневом файловом вводе / выводе. Прочитайте две верхние ссылки для открытия и закрытия файлов и примитивных операций ввода-вывода. Не видя ни одного вашего кода, вам трудно помочь, хотя, возможно, вы неправильно закрываете файл и ваша добавленная строка не сохраняется...