Я попытался создать файл (src), прочитать прочитанные символы из него и скопировать их в другой файл (dst), когда имя файлов, которые я получаю от команды line, но функция fopen() возвращает NULL. Я читал здесь, что я должен использовать errno.fopen() return NULL и errno is 0
#include <stdio.h>
#include <errno.h>
void copyFile(char *src, char *dst);
int main(int args, char **argv) {
int option = args;
if(option == 3){
copyFile(argv[1], argv[2]);
}
return 0;
}
void copyFile(char *src, char *dst) {
FILE *srcFile = fopen(src, "rb");
FILE *dstFile = fopen(dst, "wb");
if (srcFile || dstFile) {
printf("Error %d \n", errno);
return;
} else {
char buff[2];
while (fread(buff, 2, 1, srcFile) != 0) {
fwrite(buff, 2, 1, dstFile);
}
fclose(srcFile);
fclose(dstFile);
}
}
Это не единственная проблема - если первый «fopen» выходит из строя, а второй успешно завершается, второй устанавливает значение «errno» равным нулю, чтобы указать успех, поэтому должно быть «if (! Fopen (src)) print (ошибка); if (! fopen (dst)) print (errno); ', чтобы правильно распознать коды errno. –