লিনাক্সে কোনও স্ট্যান্ডার্ড প্রস্থান স্থিতি কোড আছে?


308

কোনও প্রক্রিয়া লিনাক্সের প্রস্থান স্থিতি 0 হলে সঠিকভাবে সম্পন্ন বলে মনে করা হয়।

আমি দেখেছি যে সেগমেন্টেশন ত্রুটিগুলি প্রায়শই 11 এর প্রস্থান স্থিতিতে পরিণত হয়, যদিও আমি জানি না যে এটি কেবল যেখানে আমি কাজ করি কনভেনশন (অ্যাপগুলি যেগুলি এর মতো ব্যর্থ হয়েছিল সেগুলি অভ্যন্তরীণ ছিল) বা একটি স্ট্যান্ডার্ড।

লিনাক্সে প্রক্রিয়াগুলির জন্য কি স্ট্যান্ডার্ড প্রস্থান কোড রয়েছে?


6
যদি আপনি সিস্টেম ফাংশন দ্বারা ফিরে "সিস্টেম ত্রুটি নম্বর" নামক জিনিসটির সন্ধান করেন তবে এখানে ইরানো
মেরিনারা

উত্তর:


86

রিটার্ন কোডের 8 বিট এবং হত্যাকারী সংকেতের সংখ্যার 8 বিট wait(2)& কো থেকে ফেরতের সময় একক মানে মিশ্রিত হয়

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <signal.h>

int main() {
    int status;

    pid_t child = fork();
    if (child <= 0)
        exit(42);
    waitpid(child, &status, 0);
    if (WIFEXITED(status))
        printf("first child exited with %u\n", WEXITSTATUS(status));
    /* prints: "first child exited with 42" */

    child = fork();
    if (child <= 0)
        kill(getpid(), SIGSEGV);
    waitpid(child, &status, 0);
    if (WIFSIGNALED(status))
        printf("second child died with %u\n", WTERMSIG(status));
    /* prints: "second child died with 11" */
}

আপনি কীভাবে প্রস্থান স্থিতি নির্ধারণ করছেন? Ditionতিহ্যগতভাবে, শেলটি কেবল একটি 8-বিট রিটার্ন কোড সংরক্ষণ করে তবে প্রক্রিয়াটি অস্বাভাবিকভাবে বন্ধ হয়ে গেলে উচ্চ বিট সেট করে।

$ sh -c 'প্রস্থান 42'; প্রতিধ্বনি $?
42
$ sh -c 'হত্যা-এসইজিভি;'; প্রতিধ্বনি $?
বিভাজন ত্রুটি
139
r Expr 139 - 128
11

আপনি যদি এগুলি ব্যতীত অন্য কিছু দেখতে পাচ্ছেন তবে প্রোগ্রামটিতে সম্ভবত একটি SIGSEGVসংকেত হ্যান্ডলার রয়েছে যা পরে exitসাধারণত কল করে , তাই এটি আসলে সংকেত দ্বারা নিহত হয় না। (প্রোগ্রামগুলি যেকোন সিগন্যালকে হ্যান্ডেল করতে পছন্দ করতে পারে SIGKILLএবং এর বাইরেও SIGSTOP))


8
প্রশ্নটি এখন যেভাবে দেখা যাচ্ছে, তা প্রদত্ত, এটি সবচেয়ে কার্যকর (এবং এভাবে গৃহীত) উত্তর বলে মনে হচ্ছে না।
ডেভিড জে।

332

পর্ব 1: উন্নত বাশ স্ক্রিপ্টিং গাইড ting

সর্বদা হিসাবে, উন্নত ব্যাশ স্ক্রিপ্টিং গাইড রয়েছে মহান তথ্য : (। এই অন্য উত্তর সংযুক্ত জানিয়েছে, কিন্তু একটি অ-আনুশাসনিক URL- এ)

1: সাধারণ ত্রুটির জন্য ক্যাচল
2: শেল বিল্টিনগুলির অপব্যবহার (বাশ ডকুমেন্টেশন অনুসারে)
126: কমান্ডটি চাওয়া
127 কার্যকর করতে পারে না : "কমান্ড পাওয়া যায়নি"
128:
128 + এন থেকে বেরিয়ে যাওয়ার জন্য অবৈধ যুক্তি "মারাত্মক ত্রুটি সংকেত" n "
255: প্রস্থান করুন সীমার বাইরে স্থিতি (প্রস্থানটি 0 - 255 সীমাতে কেবল পূর্ণসংখ্যার আরোগুলি নেয়)

পার্ট 2: sysexits.h

এবিএসজি রেফারেন্স sysexits.h

লিনাক্সে:

$ find /usr -name sysexits.h
/usr/include/sysexits.h
$ cat /usr/include/sysexits.h

/*
 * Copyright (c) 1987, 1993
 *  The Regents of the University of California.  All rights reserved.

 (A whole bunch of text left out.)

#define EX_OK           0       /* successful termination */
#define EX__BASE        64      /* base value for error messages */
#define EX_USAGE        64      /* command line usage error */
#define EX_DATAERR      65      /* data format error */
#define EX_NOINPUT      66      /* cannot open input */    
#define EX_NOUSER       67      /* addressee unknown */    
#define EX_NOHOST       68      /* host name unknown */
#define EX_UNAVAILABLE  69      /* service unavailable */
#define EX_SOFTWARE     70      /* internal software error */
#define EX_OSERR        71      /* system error (e.g., can't fork) */
#define EX_OSFILE       72      /* critical OS file missing */
#define EX_CANTCREAT    73      /* can't create (user) output file */
#define EX_IOERR        74      /* input/output error */
#define EX_TEMPFAIL     75      /* temp failure; user is invited to retry */
#define EX_PROTOCOL     76      /* remote error in protocol */
#define EX_NOPERM       77      /* permission denied */
#define EX_CONFIG       78      /* configuration error */

#define EX__MAX 78      /* maximum listed value */

5
নোট করুন যে ইউনিক্সের কিছু স্বাদে কিছু কমান্ড অন্যান্য জিনিসগুলি নির্দেশ করতে 2 এর প্রস্থান স্থিতি ব্যবহার করে। উদাহরণস্বরূপ, গ্রেপের অনেকগুলি বাস্তবায়ন একটি ত্রুটি নির্দেশ করতে 2 এর প্রস্থান স্থিতি ব্যবহার করে এবং 1 এর একটি প্রস্থান স্থিতি ব্যবহার করে কোনও নির্বাচিত লাইন খুঁজে পাওয়া যায় নি।
নামশুব রাইটার

3
: BSD গুলোর উপর একজন মানুষ পাতা থেকে sysexits.h তথ্য সংক্ষেপিত আছেman sysexits
georgebrock

6
@ নমশুব রাইটার কী বলেছে। প্রস্থান স্থিতি 2 হ'ল ইউনিক্স ইউটিলিটিগুলিতে ভুল কমান্ড লাইন ব্যবহারের জন্য সর্বজনীন গমন, কেবল "ইউনিক্সের কিছু স্বাদে" নয় তবে সাধারণভাবে। হেডার এই উত্তর দেখানো প্রকৃত নিয়মাবলী প্রতিফলিত না, এখন নয়তো কখন এটা 1987 সালে লেখা হয়েছিল
Alexis

এবিএস "দুর্দান্ত" নয়। বিষয়টি পড়ুন দয়া করে; সমালোচনা খুঁজে পাওয়া ঠিক কঠিন নয়।
ট্রিপলি

তবে প্রকৃত সরকারী উত্স কোডটি sysexits.hকোথায়? Man পৃষ্ঠা সবাই উল্লেখ মাত্র গদ্য হয় রাখে। উদাহরণস্বরূপ এটি রেফারেন্স করে EX_OKতবে এটি অন্যান্য কোডগুলির মতো আদর্শিক উপায়ে এটি সংজ্ঞায়িত করে না। আরও কিছু নিখোঁজ রয়েছে কি?
গ্যারেট উইলসন

71

'1' >>> সাধারণ ত্রুটির জন্য ক্যাচল

'2' >>> শেল বিল্টিনগুলির অপব্যবহার (বাশ ডকুমেন্টেশন অনুসারে)

'126' >>> অনুরোধ করা কমান্ড কার্যকর করতে পারে না

'127' >>> "কমান্ড পাওয়া যায় নি"

'128' >>> প্রস্থান করার জন্য অবৈধ যুক্তি

'128 + n' >>> মারাত্মক ত্রুটি সংকেত "n"

'130' >>> স্ক্রিপ্ট নিয়ন্ত্রণ-সি দ্বারা সমাপ্ত

'255' >>> স্থিতির বাইরে অবস্থানের প্রস্থান করুন

এটা বাশ জন্য। তবে অন্যান্য অ্যাপ্লিকেশনগুলির জন্য আলাদা আলাদা প্রস্থান কোড রয়েছে।


1
দেখে মনে হচ্ছে আপনি দুজন একই মিনিটে উত্তর দিয়েছেন answered আপনার লিঙ্কগুলি দেখতে এবং এগুলিতে আটকানোতে টিয়ানকে বেশ দ্রুত হতে হবে।
এগুলিতে আটকানোতে

6
দ্রষ্টব্য যে 'কন্ট্রোল-সি ফলন ১৩০' সিগন্যাল এন এর জন্য '128 + এন' এর সাথে সামঞ্জস্যপূর্ণ; নিয়ন্ত্রণ-সি সিগন্যাল উত্পন্ন করে যা সংকেত 2।
জোনাথন লেফলার

3
এটি এবিএস থেকে অ্যাট্রিবিউট ছাড়াই চুরি করা বলে মনে হচ্ছে। (আমরা বলতে পারি কারণ
এবিএসে

4
অ্যাডভান্সড ব্যাশ-স্ক্রিপ্টিং গাইড অনুসারে এগুলি হ'ল রিজার্ভেড এক্সিট কোড । এর অর্থ এই যে ব্যবহারকারীগুলির দ্বারা নির্ধারিত প্রস্থান পরামিতিগুলির জন্য এই মানগুলি এড়ানো উচিত
ingyhere

53

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

এখানে সাধারণ সমাপ্তির জন্য আসল, দীর্ঘস্থায়ী প্রস্থান স্থিতি কনভেনশনটি রয়েছে, যেমন সিগন্যালের মাধ্যমে নয়:

  • প্রস্থান প্রস্থান 0: সাফল্য
  • প্রোগ্রামের দ্বারা সংজ্ঞায়িত স্থিতি 1: "ব্যর্থতা" থেকে প্রস্থান করুন
  • প্রস্থান স্থিতি 2: কমান্ড লাইন ব্যবহারের ত্রুটি

উদাহরণস্বরূপ, diffতুলনা করা ফাইলগুলি অভিন্ন হলে 0 এবং অন্যটি পৃথক হলে 1 প্রদান করে। দীর্ঘস্থায়ী সম্মেলনের মাধ্যমে, ইউনিক্স প্রোগ্রামগুলি প্রস্থান স্থিতি ২ ফেরত দেয় যখন ভুলভাবে বলা হয় (অজানা বিকল্পগুলি, যুক্তিগুলির ভুল সংখ্যা, ইত্যাদি) উদাহরণস্বরূপ diff -N, grep -Yবা diff a b cসমস্ত ফলাফল $?2 এ নির্ধারিত হবে This এটি থেকেই এবং অনুশীলনটি থেকেই 1970 এর দশকে ইউনিক্সের প্রথম দিনগুলি।

গৃহীত উত্তর যখন কমান্ড হয় তখন কি হবে ব্যাখ্যা একটি সংকেত দ্বারা সমাপ্ত করা হয়েছে। সংক্ষিপ্তভাবে, প্রস্থান স্থিতিতে একটি অকাট্য সিগন্যালের ফলাফলের কারণে সমাপ্তি 128+[<signal number>। উদাহরণস্বরূপ, SIGINT( সিগন্যাল 2 ) দ্বারা সমাপ্তি প্রস্থান স্থিতিতে 130 এর ফলাফল।

মন্তব্য

  1. বেশ কয়েকটি উত্তর প্রস্থান স্থিতি 2 কে "ব্যাশ বিল্টিনগুলির অপব্যবহার" হিসাবে সংজ্ঞায়িত করে। এটি কেবল তখনই প্রযোজ্য ব্যাশ (বা কোনও বাশ স্ক্রিপ্ট) স্থিতি ২ সহ প্রস্থান করে it এটিকে ভুল ব্যবহারের ত্রুটির একটি বিশেষ ক্ষেত্রে বিবেচনা করুন।

  2. ইন sysexits.h, উল্লেখিত সবচেয়ে জনপ্রিয় উত্তর , প্রস্থান অবস্থা EX_USAGE( "কমান্ড লাইন ব্যবহার ত্রুটি") 64. হতে সংজ্ঞায়িত করা হয় কিন্তু এই আছে বাস্তবতা না প্রতিফলিত: আমি সচেতন নই কোন সাধারণ ইউনিক্স উপযোগ যে ভুল আবাহন আয় 64 (উদাহরণ স্বাগত জানাই )। উত্স কোডটি যত্ন সহকারে পড়া প্রকাশিত করে যা sysexits.hসত্যের ব্যবহারের প্রতিবিম্বের পরিবর্তে উচ্চাকাঙ্ক্ষী is

     *    This include file attempts to categorize possible error
     *    exit statuses for system programs, notably delivermail
     *    and the Berkeley network.
    
     *    Error numbers begin at EX__BASE [64] to reduce the possibility of 
     *    clashing with oth­er exit statuses that random programs may 
     *    already return. 
    

    অন্য কথায়, এই সংজ্ঞাগুলি তখনকার প্রচলিত অনুশীলনের প্রতিফলন করে না (1993) তবে ইচ্ছাকৃতভাবে এটির সাথে বেমানান ছিল। মোর করুণা।


কোনও প্রোগ্রাম যখন SIGINT / Ctrl-C ধরা দ্বারা সমাপ্তি হ্যান্ডেল করে তখন কী ফিরিয়ে আনতে হবে? এখনও 130? বাশ পদার্থ ছাড়াও অন্য শেল ব্যবহার কি?
গ্রিঙ্গো সুভেভ

1
প্রোগ্রামটি চালাচ্ছে যে শেলটি অপ্রাসঙ্গিক; কোনও প্রক্রিয়া তাত্ত্বিকভাবে তার পিতামাতার প্রক্রিয়ার উপর নির্ভর করে বিভিন্ন স্ট্যাটাসের সাথে প্রস্থান করতে বেছে নিতে পারে, তবে আমি কখনও কখনও এমন ঘটনা শুনিনি যেখানে এটি ঘটে।
অ্যালেক্সিস

1
যদি কোনও প্রোগ্রাম স্বাক্ষর করে, পরিষ্কার করে, এবং যেভাবেই প্রস্থান করে তবে স্ট্যাটাসটি যা প্রোগ্রামের জন্য তা বোঝায়। উদাহরণস্বরূপ, moreটার্মিনাল মোডগুলি রিসেট করবে এবং স্থিতি 0 দিয়ে প্রস্থান করবে (আপনি এটি চেষ্টা করতে পারেন)।
অ্যালেক্সিস

1
এই উত্তরটি প্রকৃতপক্ষে যা আছে তার তুলনায় মানকতার অনেক উচ্চতর গ্রেডকে বোঝায়। মান 2 এর অর্থের যথাযথ মানদণ্ড নেই এবং প্রকৃত অনুশীলনটি তখন অনুমানযোগ্যভাবে খুব মিশ্রিত হয়। এটি সত্য যে অনেকগুলি সরঞ্জাম অপ্রয়োজনীয় ব্যবহারের জন্য 2 ফেরত দেয় তবে "অনুপযুক্ত ব্যবহার" এর অর্থ কী এটি ঠিকঠাকভাবে সংজ্ঞায়িত হয় না এবং আরও অনেকে এই সম্মেলনে মেনে চলেন না।
ট্রিপলি

@ ট্রিপলির "সরঞ্জামগুলি" কোনওভাবেই সংজ্ঞায়িত হয় না! :-) অবশ্যই, যে কোনও কমান্ড-লাইন প্রোগ্রাম লিখতে পারে এবং এটি কিছুতেই ফিরে আসতে পারে, তবে লিনাক্সের চেয়ে পুরানো স্কুল "ইউনিক্স কমান্ড-লাইন ইউটিলিটিস" বা জিএনইউ কোর্টিলগুলির সামগ্রীগুলি বেশ যথেষ্ট এই বিষয়ে সামঞ্জস্যপূর্ণ। যদি আপনি অন্যথায় ভাবেন, দয়া করে এই গোষ্ঠীর এমন কিছু সরঞ্জামের নাম দিন যা এইভাবে স্থিতি 2 ব্যবহার করে না। এছাড়াও, "অনুপযুক্ত ব্যবহার" আপনার শব্দ (এবং আমি সম্মত হই যে এটি একটি অস্পষ্ট শব্দ); অবর্তমান বা বেমানান বিকল্প, অ বিকল্প ভুল সংখ্যক আর্গুমেন্ট, ইত্যাদি: আমি লিখেছি "কমান্ড লাইন ব্যবহার ত্রুটি", যা প্রশংসনীয় নির্দিষ্ট
Alexis

25

সাফল্যের অর্থ 0 বাদে কোনও মান বহির্গমন কোড নেই। অ-শূন্য অগত্যা হয় ব্যর্থতা বোঝায় না।

stdlib.h EXIT_FAILURE1 এবং হিসাবে সংজ্ঞায়িত করেEXIT_SUCCESS 0 তবে এটি প্রায়।

সেগফল্টে থাকা ১১ টি আকর্ষণীয়, কারণ 11টি সিগন্যাল্টের ক্ষেত্রে প্রক্রিয়াটি ধ্বংস করতে কার্নেলটি ব্যবহার করে এমন সিগন্যাল নম্বর। কার্নেল বা শেলের মধ্যে এমন কিছু ব্যবস্থা রয়েছে যা এটিকে প্রস্থান কোডটিতে অনুবাদ করে।


20

sysexits.h স্ট্যান্ডার্ড প্রস্থান কোডের একটি তালিকা আছে। এটি কমপক্ষে 1993-এর পূর্ববর্তী বলে মনে হচ্ছে এবং পোস্টফিক্সের মতো কিছু বড় প্রকল্প এটি ব্যবহার করে, তাই আমি ভাবলাম এটি যাওয়ার উপায়।

ওপেনবিএসডি ম্যান পৃষ্ঠা থেকে:

স্টাইল (9) অনুসারে, কোনও প্রোগ্রাম শেষ করার সময় ব্যর্থতার শর্তটি চিহ্নিত করতে আরবি-ট্রে-মান সহ প্রস্থান (3) এ কল করা ভাল অনুশীলন নয়। স্থিরভাবে, সিসেক্সিটগুলি থেকে প্রাক-সংজ্ঞায়িত প্রস্থান কোডগুলি ব্যবহার করা উচিত, সুতরাং প্রক্রিয়াটির কলকারী উত্স কোডটি অনুসন্ধান না করে ব্যর্থতা শ্রেণীর সম্পর্কে মোটামুটি অনুমান পেতে পারে।

8

প্রথম অনুমানের জন্য, 0 হল সফলতা, অ-শূন্য ব্যর্থতা, যার মধ্যে 1 সাধারণ ব্যর্থতা এবং একের চেয়ে বড় কিছু নির্দিষ্ট ব্যর্থতা। মিথ্যা এবং পরীক্ষার তুচ্ছ ব্যতিক্রমগুলি বাদ দিয়ে, যা উভয়ই সাফল্যের জন্য 1 দেওয়ার জন্য তৈরি করা হয়েছে, আমি খুঁজে পেয়েছি আরও কয়েকটি ব্যতিক্রম ceptions

আরও বাস্তবিকভাবে, 0 এর অর্থ সাফল্য বা সম্ভবত ব্যর্থতা, 1 এর অর্থ সাধারণ ব্যর্থতা বা সম্ভবত সাসেস, 2 এর অর্থ সাধারণ ব্যর্থতা যদি 1 এবং 0 উভয়ই সাসেসের জন্য ব্যবহৃত হয় তবে সম্ভবত সাফল্যও তত বেশি।

ফাইলগুলি তুলনামূলকভাবে অভিন্ন হলে 0 টি পৃথক কমান্ড 0 দেয় এবং বাইনারিগুলি পৃথক হলে 2 দেয়। 2 ব্যর্থতাও বোঝায়। কম কমান্ড ব্যর্থতার জন্য 1 দেয় যদি আপনি কোনও যুক্তি সরবরাহ করতে ব্যর্থ হন, তবে ক্ষেত্রে ব্যর্থ হওয়া সত্ত্বেও 0 থেকে বেরিয়ে যায়।

আরও কমান্ড এবং স্পেল কমান্ড ব্যর্থতার জন্য 1 দেয়, যদি না ব্যর্থতা অনুমতি অস্বীকার, অস্তিত্বহীন ফাইল বা ডিরেক্টরি পড়ার চেষ্টা না করে। এর যে কোনও ক্ষেত্রেই তারা ব্যর্থ হওয়া সত্ত্বেও 0 থেকে প্রস্থান করে।

তারপরে এক্সপ্রেস কমান্ডটি সাসেসের জন্য 1 দেয় যদি না আউটপুট ফাঁকা স্ট্রিং বা শূন্য হয়, এই ক্ষেত্রে, 0 সফল হয়। 2 এবং 3 ব্যর্থতা।

তারপরে এমন কিছু ক্ষেত্রে রয়েছে যেখানে সাফল্য বা ব্যর্থতা অস্পষ্ট। যখন গ্রেপ কোনও প্যাটার্নটি খুঁজে পেতে ব্যর্থ হয়, এটি 1 থেকে প্রস্থান করে, তবে এটি আসল ব্যর্থতার জন্য 2 থেকে প্রস্থান করে (যেমন অনুমতি অস্বীকৃত)। টিকিট সন্ধান করতে ব্যর্থ হলে কালিস্টটিও 1 টি থেকে বেরিয়ে যায়, যদিও গ্রেপ কোনও প্যাটার্ন খুঁজে না পেয়ে, বা আপনি যখন খালি ডিরেক্টরিটি খুঁজে পান তার চেয়ে ব্যর্থতার চেয়ে সত্য আর কিছু নয়।

সুতরাং, দুর্ভাগ্যক্রমে, ইউনিক্স শক্তিগুলি সাধারণভাবে ব্যবহৃত এক্সিকিউটেবলগুলিতে এমনকি কোনও যৌক্তিক নিয়মের কোনও প্রয়োগ করে না বলে মনে হয়।


আমিও ডিফের আচরণের কথা উল্লেখ করতে চলেছিলাম। উইজেটেও বিশদ ত্রুটি রয়েছে (উদাহরণস্বরূপ প্রমাণীকরণ ব্যর্থতার জন্য 6) তবে তারা 1 = জেনেরিক ত্রুটি ব্যবহার করে, 2..n = নির্দিষ্ট ত্রুটি
পাইপব্রোস

5

প্রোগ্রামগুলি একটি 16 বিটের প্রস্থান কোড ফেরত দেয়। প্রোগ্রামটি যদি একটি সিগন্যাল দিয়ে হত্যা করা হয় তবে হাই অর্ডার বাইটে ব্যবহৃত সংকেত রয়েছে, অন্যথায় লো অর্ডার বাইটটি প্রোগ্রামার দ্বারা ফিরে আসা প্রস্থান স্থিতি।

Exit প্রস্থান কোডটি কীভাবে স্থিতি ভেরিয়েবলকে বরাদ্দ করা হয়? শেল পর্যন্ত হয়। বাশ স্থিতির নিম্ন 7 টি বিট রাখে এবং তারপরে একটি সংকেত নির্দেশ করার জন্য 128 + (সিগন্যাল এনআর) ব্যবহার করে।

প্রোগ্রামগুলির একমাত্র "স্ট্যান্ডার্ড" কনভেনশনটি সাফল্যের জন্য 0, ত্রুটির জন্য শূন্য নয়। অন্য একটি কনভেনশন ব্যবহৃত হয়েছে ত্রুটিযুক্ত করে ফিরে আসা।


3

স্ট্যান্ডার্ড ইউনিক্সের প্রস্থান কোডগুলি অন্য পোস্টার হিসাবে উল্লিখিত হিসাবে sysexits.h দ্বারা সংজ্ঞায়িত করা হয়েছে। একই প্রস্থান কোডগুলি পোকোর মতো পোর্টেবল লাইব্রেরি দ্বারা ব্যবহৃত হয় - এখানে তাদের একটি তালিকা রয়েছে:

http://pocoproject.org/docs/Poco.Util.Application.html#16218

একটি সিগন্যাল 11 হ'ল সিগসাইজিভি (বিভাগের লঙ্ঘন) সংকেত, যা কোনও রিটার্ন কোডের থেকে পৃথক। এই সিগন্যালটি কোনও খারাপ পৃষ্ঠার অ্যাক্সেসের প্রতিক্রিয়া হিসাবে কার্নেল দ্বারা উত্পন্ন হয়েছে, যার ফলে প্রোগ্রামটি বন্ধ হয়ে যায়। সিগন্যালগুলির একটি তালিকা সিগন্যাল ম্যান পৃষ্ঠাতে পাওয়া যাবে (রান "ম্যান সিগন্যাল")।


1

লিনাক্স 0 এ ফিরে আসে, এর অর্থ সাফল্য। অন্য যে কোনও কিছুর ব্যর্থতা, প্রতিটি প্রোগ্রামের নিজস্ব প্রস্থান কোড রয়েছে, সুতরাং সেগুলি তালিকাভুক্ত করতে বেশ দীর্ঘ সময় লাগবে ...!

১১ টি ত্রুটি কোড সম্পর্কে, এটি অবশ্যই সেগমেন্টেশন ত্রুটি নম্বর, যার বেশিরভাগ অর্থ প্রোগ্রামটি বরাদ্দ না করা মেমরির অবস্থানটি অ্যাক্সেস করে।


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