子プロセスの PID を取得しようとしています。しかし、execl を実行すると、実際の PID ではなく、0 の PID と、時には負の数が出力されます。ただし、execl 行を削除すると、正常に動作します。誰でも理由を知っていますか?
if (pid==0)
{
arrayPID[i] = getpid();
execl("/bin/ls","/bin/ls",NULL);
}
printf ("Child PID is %i\n",arrayPID[i]);
execl の 2 番目のパラメーターは単に "ls" である必要があることはわかっていますが、機能しているようで、そのようにする必要があります。このせいでしょうか?
私もこれを試しましたが、PID にゼロまたは負の値を与えます。
if (pid==0)
{
arrayPID[i] = getpid();
}
if (pid==0)
{
execl("/bin/ls","/bin/ls",NULL);
}
私の他のコードが正しいと仮定してください。
ありがとう