@redcircle

Как запустить фоновый процесс из popen под win64?

Несколько странная задача:
Есть библиотека на C под Windows 64-bit, в которой есть функцияprocess(char *command) которая запускает процесс следующим образом:
f = popen(command, "r");
fread(f, ......);
pclose(f);

Соотвественно, command будет выполнена через cmd.exe

Задача следующая: запустить некое приложение myapp, чтобы оно запустилось после(!) того, как произойдёт возврат из функции process.

Грубо говоря, нужно запустить фоновый процесс, а из него приложение myapp с задержкой.

Пробовал 3 метода:
  1. Передавать в качестве command такую строку start "" cmd /c \"timeout 3 && myapp\" -- не работает, всё равно происходит ожидание, так как cmd не завершается до окончания запущенной задачи
  2. Запускать powershell, а из него Start-Job -- не работает, powershell не завершается до окончания фоновой задача, т.е. всё равно происходит ожидание
  3. Использовать schtasks /sc once -- как-то работает, но запускать может только в целое число минут, нельзя указать секунды


Условие такое: библеотеку менять нельзя, запускать процесс можно только через process().
Винда голая, есть только базовые приложения.
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы