Допустим, у меня есть функция Blackbox Blackbox () . Я не знаю, что произойдет в функции Blackbox, но есть вероятность, что он будет работать на неопределенный срок.void blackBox(){
// ... cannot see
}
int main(){
// Call blackBox() while running the main function
// Terminate after a certain time limt
}
< /code>
Я пытался использовать Boost :: Process, Boost :: Thread и Fork (). Но функции завершения не работают. Я вижу, что он все еще работает в системном мониторе после выхода моей основной программы. К вашему сведению, я использую Linux. < /P>
Минимальный воспроизводимый пример: < /p>
string command = "g++ main.cpp";
pid_t pid = fork();
if (pid == 0) {
// Run the command
system(command.c_str());
_exit(0);
} else if (pid > 0) {
int status;
while (1) {
auto elapsedTime = std::chrono::high_resolution_clock::now() - runStart;
pid_t result = waitpid(pid, &status, WNOHANG);
// the system function exits before the time limit
if (result == pid) {
fmt::print("DONE\n");
break;
}
// Terminate after the time limit of 1s is exceeded
if (elapsedTime > std::chrono::milliseconds(1000)) {
// Does not work
kill(pid, SIGKILL);
fmt::print("KILLED\n");
break;
}
}
_exit(0);
} else {
fmt::print("FORK FAIL\n");
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... n-time-lim
Убить одновременно выполняю функцию черного ящика в C ++ после определенного времени. ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Милькерующая линия при открытии ящика на Android с использованием экспозиции/ящика
Anonymous » » в форуме Android - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Милькерующая линия при открытии ящика на Android с использованием экспозиции/ящика
Anonymous » » в форуме Android - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Милькерующая линия при открытии ящика на Android с использованием экспозиции/ящика
Anonymous » » в форуме Android - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как получить значение определенного столбца? Я выполняю sqlQuery в linq С#
Anonymous » » в форуме C# - 0 Ответы
- 81 Просмотры
-
Последнее сообщение Anonymous
-