让你的 C/C++ 程序运行在后台

注意:这只是 Linux 平台下的操作。

nohup

Linux 下有个叫 nohup,它可以把输出强行重定向到文本中。
配合 & 可以达到运行在后台。

1
$ nohup ./test &

将输出到 nohup.out 文件中。

fork() & exit()

那么问题来了,如何在 C/C++(依赖 POSIX)里实现捏?
Linux 下有个叫做 fork() 的函数,它可以新建一个子进程(注意:不是子线程)。
我们可以利用它来让程序运行在后台。

上代码!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <unistd.h>
int main()
{
pid_t pid = fork();
if (!pid) // pid==0
{
// TODO: child process
}
else if (pid > 0)
{
// TODO: parent process
}
else
{
// TODO: fork failed
return 1;
}
return 0;
}

child process 中填写乃的代码就阔以辣。