2017-09-23 7 views
0

switch文にcase 0:default:が含まれている理由を理解できませんか?このコードには大文字と小文字の区別があり、デフォルトはなぜですか?

int main(void) 
{ 
    pid_t pid = create_process(); 
    switch (pid) 
    { 
     case -1: 
      perror("fork"); 
      return EXIT_FAILURE; 
      break; 
     case 0: 
      child_process(); 
      break; 
     default: 
      father_process(pid); 
      break; 
    } 
    return EXIT_SUCCESS; 
} 
+1

returnステートメントの後には「break」は必要ありません – stackptr

+1

Linuxのマニュアルページで 'create_process'が見つかりませんでした。 'pid'は任意の値になり、システム内のプロセスのPIDを識別します。したがって、' default'が実行されます。 –

+0

[ask]をご覧ください。両方のケースをどれだけ正確に実行しているかを知っていますか? – glennsl

答えて

2

新しいプロセスを作成するので、コードは2つの異なるプロセスでswitch文を2回実行します。

create_process()の内部に使用すると仮定すると、親プロセスでは、pid変数に子PID(厳密には正)が含まれています。したがって、スイッチのエントリポイントはデフォルトです。 子プロセスでは、pidは0なので、エントリポイントは大文字小文字になります。

関連する問題