Я пишу код, который читает из файла и записывает в другой файл, у меня проблема с выбором размера буфера, потому что я не знаю, это может быть любой файл, а также как читать из файла, используя while l oop? :
здесь я открыл первый файл:
int fd1 = open(args[1], O_RDONLY);
if(fd1 == -1){
perror("error");
return;
}
, а здесь я открыл второй файл:
int fd2 = open(args[2], O_WRONLY|O_TRUNC);
if (fd2 == -1) { // if we couldn't open the file then create a new one (not sure if we supposed to this ?)
fd2 = open(args[2], O_WRONLY|O_CREAT, 0666);
if (fd2 == -1) {
perror("error");
return;
}
}
и вот как я пытаюсь прочитать:
char* buff;
int count = read(fd1, buff, 1); /// read from the file fd1 into fd2
while (count != -1) {
if (!count) {
break;
}
if (write(fd2, buff, 1) == -1) {
perror("smash error: write failed");
return;
}
read_res = read(fd1, buff, 1);
if (read_res == -1) {
perror("smash error: read failed");
return;
}
}
cout <<"file1 was coppiesd to file 2" << endl ;