Hàm fseek() trong C | Thư viện C chuẩn




Hàm fseek() trong C

Hàm int fseek(FILE *stream, long int offset, int whence) trong Thư viện C chuẩn thiết lập vị trí file của Stream tới offset đã cho. Tham số offset xác định số byte để tìm kiếm từ vị trí where đã cho.

Khai báo hàm fseek() trong C

Dưới đây là phần khai báo cho hàm fseek() trong C:

int fseek(FILE *stream, long int offset, int whence)

Tham số

  • stream − Đây là con trỏ tới một đối tượng FILE mà nhận diện Stream.

  • offset − Đây là số byte để offset từ đó.

  • whence − Đây là vị trí từ đó offset được thêm vào. Nó được xác định bởi một trong số các hằng sau:

Hằng Miêu tả
SEEK_SET Phần đầu file
SEEK_CUR Vị trí hiện tại của con trỏ file
SEEK_END Phần cuối file

Trả về giá trị

Hàm này trả về 0 nếu thành công. Nếu không, hàm trả về giá trị khác 0.

Ví dụ

Chương trình C sau minh họa cách sử dụng của hàm fseek() trong C:

#include <stdio.h>

int main ()
{
   FILE *fp;

   fp = fopen("baitapc.txt","w+");
   fputs("Hoc C co ban va nang cao tai VietJack !!!", fp);
  
   fseek( fp, 4, SEEK_SET );
   fputs(" lap trinh C", fp);
   fclose(fp);
   
   return(0);
}

Biên dịch và chạy chương trình trên sẽ tạo baitapc.txt với nội dung sau. Lúc đầu, chương trình tạo file và ghi Hoc C co ban va nang cao tai VietJack !!! nhưng sau đó chúng ta đã phục hồi con trỏ ghi tại vị trí thứ 4 bắt đầu từ phần đầu file và sử dụng lệnh puts() mà ghi đè file với nội dung sau:

Hàm fseek trong C

Bây giờ theo dõi nội dung sau của file trên bởi sử dụng chương trình C sau:

#include <stdio.h>

int main ()
{
   FILE *fp;
   int c;

   fp = fopen("baitapc.txt","r");
   while(1)
   {
      c = fgetc(fp);
      if( feof(fp) )
      {
         break;
      }
      printf("%c", c); 
   }
   fclose(fp);
   return(0);
}

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Hàm fseek trong C

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài Thư viện C phổ biến khác tại VietJack:


stdio-h-trong-c.jsp