`বিভাগকরণ দোষ` বার্তাটি কি এসটিডিআরআরের আওতায় আসে?


17

আমি এক্সিকিউটেবল ইন চালানো bash

./code > log

এটি টার্মিনালে মাঝে মধ্যে ত্রুটি বার্তাগুলি দেখায় যেখানে সমস্ত মুদ্রণ বিবৃতি লগ ফাইলে যায়। আমি নীচের মত এটি আবার চালাতে

./code >& log

এখন, মাঝে মাঝে ত্রুটি বার্তাগুলিও লগ হয়। তবে যদি সেগমেন্টেশন ত্রুটি থাকে তবে এটি টার্মিনালে প্রদর্শিত হয়। কেন? Segmentation fault (core dumped)লগ ফাইলটিতে বার্তাটি কীভাবে তৈরি করবেন ?


ব্যবহারকারী - বাশ - রূপান্তর

জিএনইউ বাশ, সংস্করণ ৪.২.২৪ (1) -রেলিজ (i686-pc-linux-gnu)

উত্তর:


14

সেগমেন্টেশন ত্রুটিটি একটি সংকেত, যদি আপনি এটি ধরে না থাকেন তবে আপনার প্রোগ্রামটি সমাপ্ত হবে এবং আপনার শেল এটির স্ট্যাডারে প্রিন্ট করবে (আপনার প্রোগ্রামের স্টাডারের চেয়ে)।

এটি যখন ঘটে তখনই আপনার প্রোগ্রাম বা শেলটি সুনির্দিষ্ট পদক্ষেপ গ্রহণের পক্ষে সম্ভব হয়, প্রোগ্রামটি সিগন্যাল ধরলে বা আপনার শেলটি সাইনচিল্ড সিগন্যালের ফাঁদে ফেলে এবং তারপরে আপনার সন্তানের প্রস্থান স্থিতি পরীক্ষা করে।


1
@ ব্যবহারকারী 13107help trap
কার্লোস ক্যাম্পাদ্রেস

2
হা. বুঝেছি. যদি কারও আগ্রহী, আমি এখানে পেস্টবিন.
com

1
শেল trapকমান্ড যাত্রীর সঙ্গের নিজলটবহর সংকেত পাঠানো শেল । সুতরাং এটি আপনার প্রোগ্রামে যাঁকে পাঠানো হচ্ছে এটি ধরা কার্যকর হবে না।
ডারোবার্ট

1
@ warl0ck আপনি যেভাবে কোনও সিগন্যাল ধরেন সেভাবে সেগফোল্ট ধরা সম্ভব, তবে এটি অপরিজ্ঞাত আচরণের দিকে পরিচালিত করতে পারে তবে আপনি কী জানেন আপনি কমপক্ষে বুদ্ধিমান উপায়ে মারা যেতে পারবেন। ওপি স্টাডারকে মুদ্রণ করতে চেয়েছিল, এক্ষেত্রে সেগফল্ট ধরা এবং মুদ্রণ নিরাপদ।
সিজেএইচ

1
@ ওয়ার্লিক পরীক্ষা: আপনি পারবেন, হ্যান্ডলারে কিছু করা কিন্তু লগইন এবং প্রস্থান করার পক্ষে খুব খারাপ ধারণা। যদিও কিছু বিশেষায়িত ব্যবহারের কেস রয়েছে।
লিনাকোনিওস

19

"সেগমেন্টেশন ফল্ট" বার্তাটি স্ট্যাডারে মুদ্রিত করা হয়েছে, তবে এটি শেলের মানক ত্রুটি নয়, প্রোগ্রামের মানক ত্রুটি নয়। শেলটি এই বার্তাটি মুদ্রণ করে যখন এটি সনাক্ত করে যে একটি সংকেতের কারণে প্রোগ্রামটি বন্ধ হয়ে গেছে।

প্রোগ্রামটি চালিত শেল স্ক্রিপ্টের অংশের চারপাশে স্ট্ডারকে পুনর্নির্দেশ করে আপনি বার্তাটি নিরব করতে পারেন:

{ ./code; } >&log
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.