Это напрямую не поддерживается.
Вам нужен PID, чтобы убить процесс, а system()
предназначен для синхронного выполнения некоторой команды - он не раскрывает PID вызванной команды. Действительно, system()
может порождать несколько PID, несколько поколений потомков, возможно, /bin/sh
, а затем ваш binary-application
.
Как бы вы убили binary-application
из внешнего процесса (не нить, а полностью внешний процесс)? Как бы то ни было, вы могли бы сделать это, так как ваш поток-убийца может получить PID.
Вероятно, проще установить будильник по команде или вместо этого вызвать fork()
(что дает вам PID) и exec()
в вашем собственном коде. В любом случае, system()
в многопоточной программе может быть сложно , поэтому будьте осторожны.