ফাইল হলো রেকর্ডের সমষ্টি (অথবা) হার্ড ডিস্কের একটি স্থান যেখানে ডেটা স্থায়ীভাবে সংরক্ষিত থাকে। সি কমান্ড ব্যবহার করে আমরা ফাইলগুলো বিভিন্নভাবে অ্যাক্সেস করতে পারি।
ফাইলের ওপারেশন
সি ভাষায় ফাইল ওপর করা যাওয়া অপারেশনগুলো নিম্নরূপ −
- ফাইল নামকরণ।
- ফাইল খোলা।
- ফাইল থেকে পড়া।
- ফাইলে লিখা।
- ফাইল বন্ধ করা।
সিনট্যাক্স
ফাইল ওপেন ও নামকরণের সিনট্যাক্স নিম্নরূপ −
FILE *File pointer;
উদাহরণস্বরূপ, FILE * fptr;
File pointer = fopen ("File name”, "mode”);উদাহরণস্বরূপ, fptr = fopen ("sample.txt”, "r”);
FILE *fp; fp = fopen ("sample.txt”, "w”);ফাইল থেকে পড়ার সিনট্যাক্স নিম্নরূপ −
int fgetc( FILE * fp );// read a single character from a file
ফাইলে লিখার সিনট্যাক্স নিম্নরূপ −
int fputc( int c, FILE *fp ); // write individual characters to a stream
এই ফাংশনগুলোর সাহায্যে আমরা একটি ফাইলের কন্টেন্ট অন্য ফাইলে কপি করতে পারি।
উদাহরণ
নিচে একটি ফাইল থেকে অন্য ফাইলে কন্টেন্ট কপি করার সি প্রোগ্রাম দেওয়া হলো −
#include <stdio.h> #include <stdlib.h> // For exit() int main(){ FILE *fptr1, *fptr2; char filename[100], c; printf("Enter the filename to open for reading \n"); scanf("%s",filename); // Open one file for reading fptr1 = fopen(filename, "r"); if (fptr1 == NULL){ printf("Cannot open file %s \n", filename); exit(0); } printf("Enter the filename to open for writing \n"); scanf("%s", filename); // Open another file for writing fptr2 = fopen(filename, "w"); if (fptr2 == NULL){ printf("Cannot open file %s \n", filename); exit(0); } // Read contents from file c = fgetc(fptr1); while (c != EOF){ fputc(c, fptr2); c = fgetc(fptr1); } printf("\nContents copied to %s", filename); fclose(fptr1); fclose(fptr2); return 0; }আউটপুট
উপরোক্ত প্রোগ্রাম এক্সিকিউট করলে নিচের ফলাফল আসে −
Enter the filename to open for reading file3.txt Enter the filename to open for writing file1.txt Contents copied to file1.txt