什么是进程?
所谓进程,就是计算机运行的一个应用程序,比如你开启一个音乐软件,或者打开一个游戏,都叫做进程,而且是不同的进程。
进程能做什么?
进程最大的作用就是提高CPU的利用率,假如没有进程,那么当你玩游戏的时候,就没法听音乐,要想听音乐,就必须结束游戏。
这里只讲最基本的入门,如何创建一个进程,我们都知道在写应用程序是,大多都是main()函数开始,而进程的创建就是通过fork()函数,当然也有其他的函数,但是触类旁通,这里只拿fork()函数为例,简单来讲,当你在main函数中调用fork()时,便会产生两个相同的进程,而新创建的进程将会从你调用fork()这个函数语句处继续向下执行,区别不同的进程靠的是fork()函数的返回值,因此我们就可以通过对这个返回值的判断来编写不同的进程。
eg1:
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int main(){
pid_t pid;
printf("before calling fork my pid is %d\n", getpid());
pid = fork();
printf("after calling fork my pid is %d\n", getpid());
if(pid == -1){
perror("fork");
return -1;
}
if(pid == 0){ // child proc 子进程返回 0
printf("this is the child proc pid is %d\n", getpid());
printf("this is the child proc patent pid is %d\n", getppid());
}else{ // parent proc 父进程返回子进程的pid号
printf("this is the patent proc pid is %d\n", getpid());
printf("the ret val is %d\n", pid);
}
return 0;
}