Я написал следующий код для копирования одного файла в другой. Хотя код работает, код по-прежнему печатает оба сообщения об ошибках. Почему это ? Я полный новичок в программировании Unix и C (хотя раньше я работал с C++), поэтому любая помощь в максимально возможной степени была бы замечательной. Благодаря !Копирование одного файла в другой (Unix/C)?
int main(int argc, char *argv[])
{
int n;
char buf[4096];
while ((n=read(open(argv[1], O_RDONLY) , buf, 4096))>0)
{
if (write(creat(argv[2], S_IREAD | S_IWRITE), buf, n)!=n)
printf("Error writing to file.\n");
}
if (n<0)
printf("Error reading from file.\n");
exit(0);
}
Вы повторно открыть и файлы с каждой итерации цикла. –
* «Код работает» *, но действительно ли вы проверяли, что целевой файл имеет тот же контент, что и исходный файл? Пожалуйста, проверьте размер файла> 4096. –
Что вы думаете, где начинается чтение вновь открытого файла? И что делает 'creat'e fucntion, если файл уже существует? – Olaf