Можно ли убить процесс, созданный Системой?Насколько я знаю, System использует функцию fork () для создания нового процесса.Я хочу отследить время выполнения вызываемого процесса (разветвленный перед вызовом системы) и уничтожить его, если он превысит лимит времени выполнения.Будет ли также убит дочерний элемент, созданный system (), если я убью дочерний элемент, созданный моим основным процессом?
Это не настоящий код, но может дать представление о том, о чем я говорю.
int pid = fork();
if(pid == 0)
{
system("./veryLongProgram");
}
else
{
// calculate time elapsed and kill on long execution time
}
Я также предпочел бы, если бы я мог использовать ограничение по времени ЦП, НО я не хочу, чтобы мой дочерний процесс спал.Если это так - он может оставаться в таком состоянии очень долго.Можно ли прервать любой сон, паузу или что-то намеренно вызванное вызываемой программой?Это было бы идеально.Или, может быть, я могу проверить, не спит ли мой процесс (в этом случае я также должен убедиться, что он сделал это специально и не был приостановлен из-за какой-то печати или чего-то еще)?