Как можно запустить процесс в фоновом режиме, используя функцию popen в среде Windows 64-bit?

Как можно запустить приложение myapp, чтобы оно начало работу после завершения функции process, используя только функцию process и не внося изменений в библиотеку на C для Windows 64-bit?
  • 12 марта 2024 г. 16:29
Ответы на вопрос 2
Для запуска процесса в фоновом режиме с использованием функции popen в среде Windows 64-bit, можно добавить знак амперсанда (&) к команде, которая будет передана функции popen. Например:

```c
#include <stdio.h>

int main() {
    FILE *fp;
    fp = _popen("myapp &", "r");
    if (fp == NULL) {
        printf("Error opening pipe!\n");
        return 1;
    }
    
    _pclose(fp);
    
    return 0;
}
```

Для того чтобы приложение myapp начало работу после завершения функции process, можно использовать функцию system и добавить вызов myapp после завершения process. Например:

```c
#include <stdlib.h>

void process() {
    // some code
}

int main() {
    process(); // выполнение функции process
    
    system("myapp"); // запуск приложения myapp
   
    return 0;
}
``` 

Это позволит сначала выполнить функцию process, а затем запустить приложение myapp без изменений в библиотеке на C для Windows 64-bit.
Попробуй так. Создай батник runMyApp.bat 
@echo off
timeout /t 3 /nobreak > NUL
start myapp

Потом запусти его через process("runMyApp.bat");
Это запустит myapp с задержкой в 3 секунды, не блокируя возврат из функции
Похожие вопросы