প্রথমে কিছু নমুনা কোড দেখুন:
#include <stdio.h>
main()
{
// message 1, on stdout (using printf)
printf("%s", "message 1, on stdout (using printf)\n");
// message 2, on stdout (using fprintf)
fprintf(stdout, "%s", "message 2, on stdout (using fprintf)\n");
// message 3, on stderr (using fprintf)
fprintf(stderr, "%s", "message 3, on stderr (using fprintf)\n");
}
ফলাফলগুলি তুলনায় আসুন:
./helloerror
+ ফাইল: কোনও বার্তা নেই; কনসোল: বার্তা 1,2,3;
./helloerror >error.txt
+ ফাইল: বার্তা 1,2; কনসোল: বার্তা 3;
./helloerror 2>&1 >error.txt
+ ফাইল: বার্তা 1,2; কনসোল: বার্তা 3;
./helloerror> error.txt এর মতোই
./helloerror >error.txt 2>&1
+ ফাইল: বার্তা 3,1,2; কনসোল: কোনও বার্তা নেই;
অর্ডার 3 টি প্রথমে 1, তারপরে 2 নোট করুন
./helloerror | tee error.txt 2>&1
+ ফাইল: বার্তা 1,2; কনসোল: বার্তা 3,1,2;
অর্ডার 3 টি প্রথমে 1, তারপরে 2 নোট করুন
./helloerror 2>&1 | tee error.txt
+ ফাইল: বার্তা 3,1,2; কনসোল: বার্তা 3,1,2;
ব্যবহারের জন্য:
./helloerror >error.txt 2>&1
-> যদি কেউ ফাইলের সমস্ত (stdout + stderr) বার্তা চায় তবে কনসোলে পিনটে না
./helloerror 2>&1 | tee error.txt
-> যদি কেউ ফাইলের সমস্ত (stdout + stderr) বার্তা চায় এবং কনসোলে মুদ্রিত হয়
utility 2>&1 | tee output.log
, আপনি বলতে চাই যে 1 থেকে টী বর্ণের নাম নির্দেশ হচ্ছে, 2 হিসাবে ভাল মানে কী। যেহেতু টী বর্ণের নাম প্রবাহ সদৃশ, আউটপুট উভয় পাশাপাশি কনসোলে প্রদর্শিত হয় হিসাবে ফাইল লেখা? অত: পর মধ্যে পার্থক্যutility 2>&1 > output.log
এবংutility 2>&1 | tee output.log
হয়tee
এটা প্রবাহ সদৃশ যে হায় সঠিক হতে।?