c-如何在所有前台进程或特定前台进程之前运行后台进程



这是一个系统的程序。c

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        system("./client &");
        printf("WE are in main programn");
        printf("WE are in main programn");
        printf("WE are in main programn");
        printf("WE are in main programn");
        printf("WE are in main programn");
        return 0;
     }

这是客户端。c

#include <stdio.h>
int main()
{
    printf("We are in background processn");
    do {
        //doing some process on message queue to receive messages
    } while (1);
    return 0;
}   

如何获得的输出/系统从linux终端运行,就像下面的一样

We are in background process
WE are in main program
WE are in main program
WE are in main program
WE are in main program
WE are in main program

谁能更清楚地解释一下吗?

也许看看这个并启发自己。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
    int pid;
    int status;
    pid = fork();
    if (pid == -1)
    {
        // handle error
    }
    if (pid == 0)
    {
        // exec child process
        execl("./client", "client", NULL);
    }
    else
    {
        wait(&status);
    }
    printf("WE are in main programn");
    printf("WE are in main programn");
    printf("WE are in main programn");
    printf("WE are in main programn");
    printf("WE are in main programn");
    return 0;
}

最新更新