6
1

EOF বা end of file ঠিক কীভাবে কাজ করে?? এটা সম্পর্কে বিস্তারিত জানতে চাই।

asked 25 Jan '15, 16:30

Hafiz%20Al%20Asad's gravatar image

Hafiz Al Asad
225113

edited 14 Feb '15, 17:52

tahmidrafi's gravatar image

tahmidrafi ♦♦
975214


EOF কথাটার মানে হচ্ছে End Of File.

EOF কী?

আমরা যখন কোনো উৎস বা সোর্স থেকে ডাটা ইনপুট নেই, প্রোগ্রামিং ভাষাতে সেই উৎস বা সোর্সকে বলা হয় stream বা file. যখন কোন ডাটা সোর্স থেকে আর কোনো ডাটা ইনপুট নেওয়া যায়না (এটা অনেক কারনে হতে পারে, আর কোনো ডাটা নাই অথবা, ডিভাইস ডিসকানেক্টেড হওয়া অথবা নেটওয়ার্ক কানেকশন বিচ্ছিন্ন হওয়া) তখন সেই অবস্থা বোঝানোর জন্য একটি সিগন্যাল তৈরী করা হয়। সেটাকেই EOF বা End of File বলে।

EOF কীভাবে কাজ করে?

আমরা যখন টার্মিনালে প্রোগ্রাম চালাই তথন ইনপুট কখনো আসলে "শেষ" হয় না যদি না টার্মিনাল-টাই ডিসকানেক্টেড হয়ে যায় । কিন্তু, ইনপুট শেষ হয়েছে এমনটা বোঝানোর প্রয়োজন পড়তে পারে। তাই বিভিন্ন অপারেটিং সিস্টেমে একটি বিশেষ কি-সিকোয়েন্স রিসার্ভ রাখা হয় EOF বোঝানোর জন্য। যেমন, Unix অপারেটিং সিস্টেমে Ctrl+D এই দুই কি একসাথে চাপলে টার্মিনালের ড্রাইভার একটি EOF সিগন্যাল তৈরী করে। আবার Windows অপারেটিং সিস্টেমে Ctrl+Z দিয়ে এই বিষয়টি বোঝানো হয়।

সি প্রোগ্রামে EOF কিভাবে ব্যবহার করা হয়?

সি প্রোগ্রামিংয়ের ক্ষেত্রে stdio.h হেডার ফাইলে EOF নামে একটি ধ্রুবক ডিফাইন করা আছে যার মান -1. সি ভাষায় আমরা ইনপুট নেওয়ার জন্য scanf(), getc(), getchar(), fscanf() ইত্যাদি ফাংশন ব্যবহার করি। যখন এই ফাংশন গুলো ইনপুট নিতে নিতে ফাইলের শেষে চলে যায় বা টার্মিনাল থেকে EOF সিগন্যাল দেওয়া হয় (Ctrl+Z বা Ctrl+D) ব্যবহার করে, তখন ফাংশনগুলো এই EOF মানটি রিটার্ন করে। যার অর্থ যেই উৎস বা stream বা file থেকে সে ডাটা ইনপুট নিচ্ছে সেখানে আর কোনো ডাটা নেই।

খেয়াল রাখতে হবে যে,

EOF নিজে কিন্তু কোনো ইনপুট না, এটি নিজে কোনো ক্যারেক্টার টাইপের ডাটা না। এর কোনো ASCII বা Unicode মান নেই। এটি একটি অবস্থা বা কন্ডিশন, যা বুঝায় উৎস থেকে ডাটা পড়া শেষ, এখান থেকে আর কোনো ডাটা পড়া যাবে না। আর বিভিন্ন প্রোগ্রামিং ভাষায় এই অবস্থাটি প্রোগ্রামিং লজিকে ব্যবহারের জন্য বিভিন্ন সিস্টেম ডিফাইনড কনস্ট্যান্ট ব্যবহার করে, যেমন সি প্রোগ্রামিংয়ের EOF (যার মান লাইব্রেরীতে ডিফাইন করা -1 হিসেবে)। অর্থাৎ, আমি যদি কিবোর্ড থেকে -1 ইনপুট দেই তাহলে, সেটা EOF বুঝাবে না, বরং, -1 কথাটিকেই বুঝাবে।

নিচের লিঙ্কগুলো দেখলে বিষয়টি আরো পরিষ্কার হবে।

permanent link

answered 26 Jan '15, 15:05

tahmidrafi's gravatar image

tahmidrafi ♦♦
975214

edited 26 Jan '15, 16:04

__salman__'s gravatar image

__salman__ ♦♦
993211

প্রোগ্রামিং ল্যাঙ্গুয়েজ এ (যেমনঃ C) EOF হচ্ছে একটি value return করে যা কিনা stdio.h লাইব্রেরি ফাইল এ define করা আছে।

EOF এর মাধ্যমে ফাইল এর কাজ (যেমনঃ ফাইল থেকে input নেওয়া) শেষ হয়েছে বুঝায়।

মূলত একটি ফাইল এ অনেক byte এর ডাটা থাকে।EOF প্রোগ্রামে বসানোর ফলে computer বুঝে নেই যে এই ফাইলটির শেষ কোথায়। ফাইল গুলো ব্লকে ব্লকে সাজানো থাকে।যখন কম্পিউটার EOF খুজে পাই তখন কম্পিউটার end marker পেয়ে যাই ও বুঝে নেই ফাইলটি পর্যাপ্ত পরিমান জায়গা পেয়েছে।

permanent link

answered 25 Jan '15, 19:19

Kaiser%20Ahmed's gravatar image

Kaiser Ahmed
3.2k419

ঠিক তা না । EOF এর মাধ্যমে আসলে কম্পাইলার কিছু বুঝে না । EOF আসলে কিছুই না -1 ছাড়া । EOF = -1 ।

(26 Jan '15, 04:43) Sharif Chowdhury
1

কায়সার ভাইয়ার Answer টা ঠিক আছে

(26 Jan '15, 10:04) Tamanna Nishat Rini ♦♦
1

আমি বলতে চাইছি "EOF প্রোগ্রামে বসানোর ফলে computer বুঝে নেই যে এই ফাইলটির শেষ কোথায়।" এই কথাটি ঠিক এরকম না । বাকি সব ঠিক আছে ।

(27 Jan '15, 03:39) Sharif Chowdhury
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×358
×78
×8
×1

question asked: 25 Jan '15, 16:30

question was seen: 4,077 times

last updated: 14 Feb '15, 17:52