C-এ ফাইল হ্যান্ডলিংয়ের জন্য FILE* পয়েন্টার ব্যবহার করা হয়। FILE হলো একটি ডেটা টাইপ যাকে Opaque Data Type বলা হয় — এর ইমপ্লিমেন্টেশন লুকানো থাকে। এর ডেফিনিশন সিস্টেম-স্পেসিফিক। উবুন্টু সিস্টেমে FILE-এর ডেফিনিশন নিচের মতো:
FILE ডেফিনিশন (উবুন্টু)
struct _IO_FILE {
int _flags;
char* _IO_read_ptr;
char* _IO_read_end;
char* _IO_read_base;
char* _IO_write_base;
char* _IO_write_ptr;
char* _IO_write_end;
char* _IO_buf_base;
char* _IO_buf_end;
char *_IO_save_base;
char *_IO_backup_base;
char *_IO_save_end;
struct _IO_marker *_markers;
struct _IO_FILE *_chain;
int _fileno;
// ... আরও ফিল্ড আছে
};
FILE ব্যবহার উদাহরণ
#include <stdio.h>
int main() {
FILE *fp;
char buff[255];
fp = fopen("/tmp/test.txt", "r");
fscanf(fp, "%s", buff);
printf("1 : %s\n", buff);
fgets(buff, 255, (FILE*)fp);
printf("2: %s\n", buff);
fgets(buff, 255, (FILE*)fp);
printf("3: %s\n", buff);
fclose(fp);
return 0;
}
আউটপুট
1 : This 2: is testing for fprintf... 3: This is testing for fputs...