ইউনিক্স ইতিহাস: রিটার্ন কোড অষ্টাল?


10

আমাকে আজ রক্ষী বাহিনী থেকে ফেলে দেওয়া হয়েছিল gdb:

Program exited with code 0146.

gdbমধ্যে রিটার্ন কোড ছাপে অকট্যাল ; আমি কেন খুঁজে পেয়েছি তা খতিয়ে দেখছি: http://comments.gmane.org/gmane.comp.gdb.devel/30363

তবে এটি বিশেষ সন্তোষজনক উত্তর নয়। কিছু দ্রুত গুগলিং ইতিহাসটি প্রকাশ করেনি, তাই আমি আশা করছিলাম যে এসও-তে থাকা কেউ হয়তো পিছনের গল্পটি জানতে পারে।

কিছুটা সম্পর্কিত প্রশ্ন, কীভাবে একজন অটটলে রিটার্ন কোডটি দেখতে পাবেন? সম্ভবত পুরানো মেশিনগুলি সর্বদা রিটার্ন কোডটি প্রিন্ট করে?

$ printf %o\\n $?

বেশ অদ্ভুত :)


$?রিটার্ন কোড শেল মান, এবং একটি দশমিক অঙ্ক (বা GDB সমর্থন আপনার উদাহরণ এছাড়াও cmd করে?)। জানেন না কেন জিডিবি এটি অষ্টালে রিপোর্ট করে। আমার সমাধানটি হ'ল man asciiঅলটিক মানগুলি কী বোঝায় তা খুঁজে বের করতে । আকর্ষণীয় প্রশ্ন, আপনি যেমন অন্যান্য প্রোগ্রামগুলি থেকেও অষ্টাল মানগুলিতে চলে যান। সম্ভবত এটি কর্নিগান এবং পাইকের 'ইউনিক্স প্রোগ্রামিং এনভিয়োরনমেন্ট' এ আলোচিত। শুভকামনা।
শেল্টার

প্রস্থান স্থিতিটি একটি অঙ্কের চেয়ে বড় হতে পারে, এটি আসলে বাইট। এছাড়াও, man asciiঅষ্টালকে দশমিক রূপান্তর করতে কোনও লাভ হবে না। bcএকটি ভাল পছন্দ হবে।
jlliagre

2
রিটার্ন কোডটি একটি সংখ্যা , দশমিক বা অষ্টাল নয়। প্রোগ্রামটি একটি স্ট্যাটাস দেয় (এক বাইট)। অপেক্ষা (3) বা এর উপজাতির সাহায্যে পিতামাতার প্রক্রিয়াটি প্রক্রিয়াটি কেন প্রস্থান হয়েছিল (সাধারণত, অর্থাত্ স্বেচ্ছায় প্রস্থানকে কল করে (2); একটি সংকেত দ্বারা হত্যা করা হয়েছিল, ...)
ভনব্র্যান্ড

উত্তর:


6

অষ্টাল প্রতিনিধিত্ব ছোট মানগুলির জন্য প্রস্থান কোডটির ব্যাখ্যা সহজ করে, যা সবচেয়ে বেশি ব্যবহৃত হয়। এই সংখ্যাটি, যা একটি বাইট, দশমিক মুদ্রণ করা উচিত, কোন সংকেত কোন প্রক্রিয়াটিতে বাধা পেয়েছিল তা অষ্টালে থাকাকালীন কিছুটা গণনার প্রয়োজন হবে, সেগুলি যেমন হয় তেমন পড়তে পারে:

  • একটি প্রক্রিয়া স্ট্যাটাস 5 সহ gdbপ্রদর্শিত হয় , প্রদর্শন করে 05যা কোনও পার্থক্য করে না
  • একটি প্রক্রিয়াটি প্রস্থান করে কারণ এটি একটি SIGINT( Control+ C) পেয়েছে , এটি gdbপ্রদর্শন করে 0202যা সংকেত # 2 এর চেয়ে বেশি স্বীকৃত 130

তদুপরি, প্রস্থান স্থিতিটি কিছুটা মাস্কও হতে পারে এবং এরকম ক্ষেত্রে অষ্টাল (কমপক্ষে আপনি যখন এই দিনগুলির তুলনায় বেশ কয়েক দশক আগে বেশি ব্যবহৃত হয়েছিলেন) মানসিকভাবে দশমিক বা এমনকি বিটের মধ্যে রূপান্তর করা সহজ is হেক্সাডেসিমেল, ঠিক উদাহরণস্বরূপ chmodএখনও একটি অকট্যাল সংখ্যাকে গ্রহণ ফাইল অনুমতি প্রতিনিধিত্ব করতে: 0750 = 111 101 000 = rwx r-x ---


এটি জিজ্ঞাসা করার জন্য সম্ভবত ভুল জায়গা, তবে জিডিবি প্রদত্ত কোনও নম্বরটি অষ্টাল বা দশমিকের মধ্যে রয়েছে কিনা তা বলার কোন সহজ উপায় আছে?
মেরিনারা

3
কনভেনশনটি যদি এটি শূন্য (0) দিয়ে শুরু হয় তবে এটি অষ্টাল।
jlliagre

3

আমার কাছে এই পাঠ্যের একটি অনুলিপি নেই এবং কেবল গুগল বইগুলিতে শর্ট ব্লার্ব পাওয়া যায় তবে। এক্স / ওপেন পোর্টেবিলিটি গাইড সিস্টেম ভি স্পেসিফিকেশন কমান্ড এবং ইউটিলিটিস পৃষ্ঠা 283 অনুসারে (গুগল বই অনুসারে)

যদি কোনও অ্যাপ্লিকেশন অস্বাভাবিকভাবে বন্ধ হয় তবে এর প্রস্থান স্থিতি হল অষ্টাল 0200 + স্থিতি এবং সেখানে সাধারণ 'স্থিতি' মানগুলির একটি তালিকা রয়েছে (যা সম্ভবত অষ্টালেও দেওয়া আছে)।

সুতরাং এটি / একটি দরিদ্র ম্যানস ত্রুটি বার্তা ছিল।

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