C/C++ লাইব্রেরি ফাংশন size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) দেওয়া স্ট্রিম থেকে ডেটা পড়ে ptr দ্বারা পয়েন্ট করা অ্যারেতে রাখে। fread() ফাংশনের ডিক্লেরেশন নিচে দেওয়া হলো -
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
নিচের টেবিলে fread() প্যারামিটার এবং বিবরণ দেওয়া হলো -
| প্যারামিটার | বিবরণ |
|---|---|
| ptr | এটি একটি মেমরি ব্লকের পয়েন্টার যার মিনিমাম আকার size*nmemb বাইট। |
| size | প্রতিটি এলিমেন্টের আকার বাইটে যা পড়া হবে। |
| nmemb | এটি এলিমেন্টের সংখ্যা, প্রতিটির আকার size বাইট। |
| stream | এটি একটি FILE অবজেক্টের পয়েন্টার যা একটি ইনপুট স্ট্রিম নির্দিষ্ট করে। |
সফলভাবে পড়া এলিমেন্টের মোট সংখ্যা size_t অবজেক্ট হিসেবে রিটার্ন হয়, যা একটি ইন্টিগ্রাল ডেটা টাইপ। যদি এই সংখ্যা nmemb প্যারামিটার থেকে ভিন্ন হয়, তবে либо এরর হয়েছে অথবা End Of File পৌঁছানো হয়েছে।
উদাহরণ কোড
#include <stdio.h>
#include <string.h>
int main() {
FILE *fp;
char c[] = "this is tutorialspoint";
char buffer[100];
/* ফাইল খোলো পড়ার এবং লেখার জন্য */
fp = fopen("file.txt", "w+");
/* ফাইলে ডেটা লিখো */
fwrite(c, strlen(c) + 1, 1, fp);
/* ফাইলের শুরুতে সিক করো */
fseek(fp, 0, SEEK_SET);
/* ডেটা পড়ো এবং ডিসপ্লে করো */
fread(buffer, strlen(c) + 1, 1, fp);
printf("%s\n", buffer);
fclose(fp);
return 0;
}উপরের প্রোগ্রাম কম্পাইল ও রান করলে file.txt তৈরি হবে এবং "this is tutorialspoint" কনটেন্ট লিখবে। তারপর fseek() ফাংশন ব্যবহার করে রাইটিং পয়েন্টার ফাইলের শুরুতে রিসেট করবে এবং ফাইল কনটেন্ট প্রিপেয়ার হবে নিচের মতো -
আউটপুট
this is tutorialspoint