私はプロセスの操作方法を正確に理解しようとしています。具体的には、実行されるコードと実行されないコード。私は理解していないことを試して説明するためにいくつかのサンプルコードを書いた。Cのプロセス:fork()scope
int main(){
//Program code part 1
int myfun(){
if(fork()>0){
//Program code part 2
}
return 0;
}
//Program code part 3
}
私が理解していることから、親プロセスはコードパート1と3を実行し、myfun()に0を返します。子はパート2を実行する必要があります.1ではなくなります。パート3を実行しますか? myfun()のスコープで作成されているので、私は思っていませんでしたが、私は自分のプログラムを乱す前に確かに確認したいと思います。
'myfun'は' main'の内部で定義されています。私はgccがこれをサポートする拡張機能を持っていると信じていますが(標準ではありません)、あなたは決してその機能を呼び出すことはありません。 – Kevin
あなたは 'main'の中に' myfun' *を定義しました。あなたはCでそれを行うことはできません。 'main'は' myfun'を呼び出しますか? –
Cでは、ネストされた関数定義を許可していません。 – PSkocik