新しいプロセスをフォークするコードを作成しようとしていますが、時間がかかりすぎる場合は、しばらくしてからその新しいプロセスを強制終了します。このコードは、時間制限なしで正常に動作しexecve、問題なく実行されますが、コードの先頭 4 行を挿入しcatて execve を呼び出そうとすると、アラームの呼び出しによっておそらく子供が殺されます。
このsignal場合、呼び出しはまったく何もしていないようです。多数のトレースを入れましたkillprocが、呼び出されていません。このタイミング システムを間違って設定するにはどうすればよいですか?
void killproc(int sig) {
printf("running?");
}
コード: (子)
if(MAX_TIME != -1){
signal(SIGALRM, killproc);
alarm(MAX_TIME);
}
// Process we are timing
int ret = execve(path, newargv, envp);