新しいプロセスをフォークするコードを作成しようとしていますが、時間がかかりすぎる場合は、しばらくしてからその新しいプロセスを強制終了します。このコードは、時間制限なしで正常に動作し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);