আমি কেবল "একটি ফাইলের শেষে একটি নিউলাইন চরিত্রটি সরানো" এর উত্তরগুলি পড়েছি এবং প্রত্যেকে শেষ চরিত্রটি মুছতে বলেছে। আমার প্রশ্ন হ'ল, ইওফ চরিত্রটি কি শেষ নয়?
আমি কেবল "একটি ফাইলের শেষে একটি নিউলাইন চরিত্রটি সরানো" এর উত্তরগুলি পড়েছি এবং প্রত্যেকে শেষ চরিত্রটি মুছতে বলেছে। আমার প্রশ্ন হ'ল, ইওফ চরিত্রটি কি শেষ নয়?
উত্তর:
পূর্ববর্তী উত্তরগুলি সঠিকভাবে স্থিতি হিসাবে কোনও ফাইলের শেষ ফাইলের অক্ষর দিয়ে শেষ হয় না। তবে আমি মনে করি উত্তর এবং মন্তব্যে কিছু উল্লেখযোগ্য ভুল রয়েছে contain
ASCII অক্ষর সেটটিতে একটি EOV অক্ষর নেই। বেশ কয়েকটি "শেষ" নিয়ন্ত্রণের অক্ষর রয়েছে: পাঠ্যের সমাপ্তি (3), সংক্রমণ সমাপ্তি (4), সংক্রমণ ব্লকের সমাপ্তি (23), মাঝারিটির শেষ (25)। ফাইল বিভাজক (২৮) সম্ভবত একটি EOF অক্ষরের নিকটে আসে comes কোড 26 হ'ল "বিকল্প", ইওএফ নয়।
Ctrl- Dশুধুমাত্র টার্মিনাল ইনপুট এর সাথে সম্পর্কিত। উদাহরণস্বরূপ কমান্ড
cat filea fileb filec > outfileজড়িত না Ctrl- D। যাইহোক, আপনি ছাড়া অন্য কিছু টার্মিনাল ফাইলের শেষে চরিত্র পরিবর্তন করতে পারেন Ctrl- Dব্যবহার sttyকমান্ড।
কড়া কথায় বলতে গেলে, Ctrl- D(বা যা আপনি বদলে গেছেন) কোনও ইওএফ কী কোড নয়। এটি যা করে তা হ'ল readইনপুট উপলভ্য কিসের সাহায্যে সিস্টেম কলকে রিটার্ন করা ঠিক যেমন রিটার্ন টিপলে পঠিত সিস্টেম কল কলকারীকে অক্ষরের একটি লাইন ফিরিয়ে দেয়। কনভেনশন দ্বারা পঠিত সিস্টেম কল থেকে শূন্যের ফেরতের মান (অর্থাত শূন্য অক্ষরগুলি পড়া) ফাইল শর্তের সমাপ্তি নির্দেশ করে। যাইহোক, ইনপুট ফাইলটি স্বয়ংক্রিয়ভাবে বন্ধ হয় না এবং, যদি ইনপুটটি টার্মিনাল থেকে আসে তবে এটি "ফাইলের শেষ" অবস্থায় রাখা হয় না। আপনি এমন একটি প্রোগ্রাম লিখতে পারেন যা "ফাইলের সমাপ্তি" পরেও টার্মিনাল থেকে পড়া চালিয়ে যায় এবং পঠিত কলটি পরবর্তী ইনপুট লাইনের জন্য শূন্য থেকে ফিরে আসতে পারে।
ইওফ এবং ইওল অক্ষরের মধ্যে সাদৃশ্যটি যদি দেখা যায় Ctrl- Dচাপানো হয় তবে কিছু ইনপুট ইতিমধ্যে লাইনে লেখা হয়েছে। উদাহরণস্বরূপ, আপনি যদি "এবিসি" এবং টিপেন Ctrl- Dরিড কল কল রিটার্ন করে তবে এইবার 3 এর রিটার্ন মান সহ এবং বাফারে থাকা "এবিসি" দিয়ে আর্গুমেন্ট হিসাবে পাস হয়েছে। যেহেতু পঠন 0 ফিরে আসে না, এটি উপরের কনভেনশন দ্বারা একটি ইওএফ শর্ত হিসাবে ব্যাখ্যা করা যায় না। একইভাবে, রিটার্নটিতে টিপলে পুরো ইনপুট লাইনের (নিউলাইন সহ) রিড কলটি রিটার্ন করে। আপনি catকমান্ডটি দিয়ে এটি ব্যবহার করে দেখতে পারেন : লাইনে কিছু অক্ষর লিখুন এবং Ctrl- টিপুন D। অক্ষরগুলি আপনার কাছে প্রতিধ্বনিত হতে দেখবে এবং আরও ইনপুটটির catজন্য অপেক্ষা করবে ।
উপরের সমস্তগুলি তখনই প্রয়োগ হয় যখন টার্মিনালটি "কাঁচা" মোডে থাকে, "কাঁচা" মোডের বিপরীতে, যেখানে লাইন ইনপুট প্রক্রিয়াকরণটি হ্রাস করা হয়। কাঁচা মোডে একটি সিটিআরএল-ডি অক্ষরটি সত্যই ইনপুট বাফারকে সরবরাহ করা হয়।
এএসসিআইআই কন্ট্রোল অক্ষরের 1960 এর দশকের সংজ্ঞা রয়েছে (আসলে আপনি কোনও নেটওয়ার্ককে কী বিবেচনা করতে পারেন তার পূর্ববর্তী )। এই সমস্ত নিয়ন্ত্রণ অক্ষর সেভাবে টেলিযোগযোগ সরঞ্জামগুলির জন্য যেভাবে সংজ্ঞায়িত হয়েছিল সেভাবে ব্যবহার হয় না।
ইউনিক্সের মতো সিস্টেমে কোনও EOFঅক্ষরের প্রয়োজন নেই ; কিছুই ব্যবহৃত হয় না। সিস্টেম অ্যাপ্লিকেশনগুলিকে একটি ফাইলে কতগুলি বাইট রয়েছে তা বলতে পারে:
অন্য কয়েকটি সিস্টেমে (ভিএমএস, ডস, উইন্ডোজে দেখা যায়) একটি নিয়ন্ত্রণ-জেড ফাইলের শেষের হিসাবে চিহ্নিত হতে পারে কারণ পুরানো সংস্করণগুলিতে ফাইলটি কতগুলি বাইট ফাইল রয়েছে তা কিছু অ্যাপ্লিকেশনকে বলতে পারেনি।
ভিএমএসের ক্ষেত্রে, সি রানটাইম যেভাবে কাজ করেছিল তার কারণে সীমাবদ্ধতা ছিল। সংসদীয়-ভাষা অ্যাপ্লিকেশনগুলি সঠিক ফাইলের আকার পেতে পারে (এবং করেছিল) did
শেলের ইউনিক্স সিস্টেমগুলি প্রচলিতভাবে একটি অ্যাপ্লিকেশনকে বলে যে ইনপুট (ফাইল) শেষ হয়ে গেছে, তবে নিয়ন্ত্রণ-ডি ফাইলটিতে সংরক্ষণ করা হয় না control
সি তে, EOFউদ্দেশ্যমূলকভাবে -1এটি ইঙ্গিত করা হয়েছে যে এটি কোনও বৈধ চরিত্র নয়। স্ট্যান্ডার্ড I / O ফিরিয়ে দেয় EOFযখন কোনও ফাইলের শেষের শর্তটি সনাক্ত হয় - কোনও বিশেষ অক্ষর নয়।
উপায় দ্বারা, ফাইলগুলি একটি নতুন লাইন (এএসসিআইআই লাইন-ফিড) অক্ষর দিয়ে শেষ হওয়ার দরকার নেই । পাঠ্য সম্পাদকরা সমস্ত মুদ্রণযোগ্য পাঠ্যযুক্ত ফাইলগুলির সাথে মোকাবিলা করতে পারবেন তবে একটি অনুবর্তনযোগ্য নতুন লাইনের অভাব রয়েছে।
busyboxএর মতো ন্যূনতম সম্পাদক vi) ইত্যাদি।
ইওএফ কোনও চরিত্র নয়। এটি এমন একটি রাষ্ট্র যা কোনও ফাইল স্ট্রিম থেকে পড়ার আর কোনও অক্ষর নির্দেশ করে না। আপনি যখন টার্মিনাল থেকে ইওফ কমান্ডটি প্রবেশ করেন, আপনি কোনও বিশেষ অক্ষর না রেখে, ইনপুট স্ট্রিমটি বন্ধ করতে ওএসকে সংকেত দিচ্ছেন।
bashহাত দেওয়ার আগে এটি টিটিওয়াই ড্রাইভার দ্বারা ম্যাসেজ করা হয়। এই ড্রাইভারটি সিটিআরএল-ডিটিকে বাধা দেয় এবং একটি ইওএফ প্রেরণ করে bash (যেখানে ইওএফ কোনও অক্ষর নয়, তবে একটি বিশেষ ফাইলের স্থিতি রয়েছে)