这是我的代码。
#include <unistd.h>
int main(){
system("echo $$");
return 0;
}
$ ./a.out &
[1] 29227
$ 29228
$ ./a.out &
[1] 29107
$ 29108
,结果在上面。
为什么彼此不同?
答案 0 :(得分:1)
当你执行system()
操作系统旋转(参见man fork,也是man execl)一个新进程时,原始进程的副本。然后,此过程将加载您想要的新程序(在本例中为shell),以打印其pid。因此他们不同。