এখানে বেশিরভাগ উত্তর [ 1 ] [ 2 ] [ 3 ] / dev / নাল এ পুনঃনির্দেশ করতে একটি একক কোণ বন্ধনী ব্যবহার করে:
command > /dev/null
তবে / dev / নালকে যুক্ত করাও কাজ করে:
command >> /dev/null
অতিরিক্ত চরিত্র ব্যতীত, এটি না করার কোনও কারণ আছে কি? এই "ভাল" এর কোনটিই / dev / নাল অন্তর্নিহিত বাস্তবায়নের?
সম্পাদনা: খোলা (2) র manpage বলেছেন lseek append মুডে একটি ফাইল প্রতিটি লেখার আগে বলা হয়:
O_APPEND
ফাইলটি অ্যাপেন্ড মোডে খোলা আছে। প্রতিটি লেখার আগে (2), ফাইল অফসেটটি ফাইলের শেষে অবস্থিত থাকে, যেন lseek (2) দিয়ে থাকে। অফসেটের ফাইলটি পরিবর্তন এবং রাইটিং অপারেশনটি একক পরমাণু পদক্ষেপ হিসাবে সম্পাদিত হয়।
যা আমাকে মনে করে যে ব্যবহারের জন্য একটি ক্ষুদ্র পারফরম্যান্স জরিমানা হতে পারে >>
। তবে অন্যদিকে কাটা / ডিভ / নালটিকে সেই নথি অনুসারে একটি অপরিজ্ঞাত অপারেশন বলে মনে হচ্ছে:
O_TRUNC
যদি ফাইলটি ইতিমধ্যে উপস্থিত থাকে এবং এটি একটি নিয়মিত ফাইল এবং অ্যাক্সেস মোড লেখার অনুমতি দেয় (যেমন, এটি O_RDWR বা O_WRONLY) এটি দৈর্ঘ্য 0 এ কাটা হবে If ফাইলটি যদি একটি ফিফো বা টার্মিনাল ডিভাইস ফাইল হয় তবে O_TRUNC পতাকা অগ্রাহ্য করা হবে। অন্যথায়, O_TRUNC এর প্রভাবটি অনির্ধারিত।
এবং পসিক্স স্পেক অনুযায়ী >
একটি বিদ্যমান ফাইল কেটে ফেলা হবে , তবে ওটআরআরসিসিটি ডিভাইস ফাইলগুলির জন্য বাস্তবায়ন-সংজ্ঞায়িত এবং কীভাবে / ডিভ / নলটি কেটে যাওয়ার প্রতিক্রিয়া জানাতে হবে সে সম্পর্কে কোনও কথাই নেই ।
সুতরাং, কাটা / দেব / নাল আসলে অনির্দিষ্ট? এবং লেসিক কলগুলি কী লেখার পারফরম্যান্সে কোনও প্রভাব ফেলবে?