Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

대체 n번째 바이트를 읽고 다른 파일에 쓰는 C/C++의 Iseek()


이 튜토리얼에서는 대체 n번째 바이트를 읽고 다른 파일에 쓰는 방법을 이해하는 프로그램에 대해 설명합니다.

이를 위해 두 개의 .txt 파일이 제공됩니다. 우리의 임무는 파일 설명자의 포인터를 변경하는 데 사용되는 Iseek()를 사용하여 한 파일에서 다른 파일로 내용을 쓰는 것입니다.

예시

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
void func(char arr[], int n){
   int f_write = open("start.txt", O_RDONLY);
   int f_read = open("end.txt", O_WRONLY);
   int count = 0;
   while (read(f_write, arr, 1)){
      if (count < n) {
         lseek (f_write, n, SEEK_CUR);
         write (f_read, arr, 1);
         count = n;
      }
      else{
         count = (2*n);
         lseek(f_write, count, SEEK_CUR);
         write(f_read, arr, 1);
      }
   }
   close(f_write);
   close(f_read);
}
int main(){
   char arr[100];
   int n;
   n = 5;
   func(arr, n);
   return 0;
}

출력

(첫 번째 파일)

대체 n번째 바이트를 읽고 다른 파일에 쓰는 C/C++의 Iseek()

(출력 파일)

대체 n번째 바이트를 읽고 다른 파일에 쓰는 C/C++의 Iseek()