Я написал следующий код для копирования одного файла в другой. Хотя код работает, он по-прежнему выводит оба сообщения об ошибках. Почему это ? Я новичок в программировании на Unix и C (хотя раньше я работал с 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);
}
creat
e, если файл уже существует? - person too honest for this site   schedule 01.02.2016read()
иwrite()
возвращаютssize_t
, а неint
. Это не одно и то же. - person Andrew Henle   schedule 01.02.2016read
не удалось, аwrite
никогда не происходит. - person Weather Vane   schedule 01.02.2016