Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

Iseek() ใน C/C++ เพื่ออ่านไบต์ที่ n สำรองและเขียนลงในไฟล์อื่น


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อทำความเข้าใจวิธีอ่านไบต์ที่ n สำรองและเขียนลงในไฟล์อื่น

สำหรับสิ่งนี้ เราจะได้รับไฟล์ .txt สองไฟล์ งานของเราคือการเขียนเนื้อหาจากไฟล์หนึ่งไปยังอีกไฟล์หนึ่งโดยใช้ Iseek() ซึ่งใช้ในการเปลี่ยนตัวชี้ของ filedescriptor

ตัวอย่าง

#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;
}

ผลลัพธ์

(ไฟล์แรก)

Iseek() ใน C/C++ เพื่ออ่านไบต์ที่ n สำรองและเขียนลงในไฟล์อื่น

(ไฟล์เอาต์พุต)

Iseek() ใน C/C++ เพื่ออ่านไบต์ที่ n สำรองและเขียนลงในไฟล์อื่น