স্টাডআউট বাফারিং অপসারণের জন্য b আনফার` বা `স্টডবুফ`?


13

আনবুফার (1) এবং স্টডবুফ (1) এর মধ্যে কি পার্থক্য রয়েছে? আমি যা সংগ্রহ করি তা থেকে আনবফার শুরুতে libc ফাংশন সেট (এক্স) বুফকে কল করার এবং "পরে জিনিসগুলি হতে দেওয়া" "সেরা প্রচেষ্টা" এর চেয়ে আরও বেশি কিছু করে?

উত্তর:


14

তারা সম্পূর্ণ ভিন্ন উপায়ে কাজ করে।

প্রোগ্রামটি আনবুফার নামকৃত কমান্ডটি চালানোর প্রত্যাশাকে ব্যবহার করে। যেহেতু প্রত্যাশা শিশু প্রক্রিয়াটির স্টাডাউটের সাথে সংযুক্ত হওয়ার জন্য ছদ্ম-টিটি তৈরি করে, তাই শিশুটিকে এই ভেবে বোকা বানানো যেতে পারে যে এটি ব্লক-বাফারিংয়ের পরিবর্তে লাইন-বাফারিং ব্যবহার করা উচিত। কিছু প্রোগ্রাম তাদের আচরণ পরিবর্তন করবে যখন ইসটিটি (স্টাডআউট) সত্য হয়, অন্যরা তা করে না এবং কোনটি করবে এবং কোনটি করবে না তা জানা খুব কঠিন।

প্রোগ্রামটি stdbuf গতিশীল লোড বাইনারিগুলির জন্য libstdbuf কে libc এর সামনে রাখার চেষ্টা করে। যেখানে libstdbuf libc stdio কলগুলির ডিফল্ট বাফারিং কৌশলটি নতুনভাবে সংজ্ঞায়িত করে।

আমি এটি দ্বারা খুঁজে পেয়েছি

 apt-get source expect coreutils

এবং প্রতিটি প্রোগ্রামের জন্য প্রাসঙ্গিক উত্স পড়া।


কিছু উদ্বেগজনক জিনিস ( unbuffer -pম্যানপেজ থেকে): যদি কোনও প্রক্রিয়া খাওয়ানোর ইনপুটটি আনবুফার থেকে প্রস্থান হয় তবে ভুলভাবে কাজ করতে পারে। বিবেচনা করুন: process1 | unbuffer -p process2 | process3যদি প্রসেস 1 প্রস্থান করে, প্রক্রিয়া 2 এখনও শেষ নাও হতে পারে। আনবুফারের পক্ষে অপেক্ষা করা দীর্ঘক্ষণ জানা অসম্ভব
ড্যান 3

দেখে মনে হচ্ছে যে stdbuf সি স্ট্রিম ব্যবহার করে এমন প্রোগ্রামগুলির স্টিডিন বাফারিংও নিয়ন্ত্রণ করতে পারে যা গুরুত্বপূর্ণ বলে মনে হয়। ভবিষ্যতের পাঠকদের সুবিধার জন্য এটি উত্তরের অন্তর্ভুক্ত করা উচিত।
dan3
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.