进程控制理论基础
进程是一个具有独立功能的运行活动
进程和程序的区别:程序运行需要进程
特点:动态性,并发性,独立性,异步性
进程控制编程
获取子进程ID和父进程ID
#include <stdio.h>
#include <unistd.H>
#include <stdlib.h>
int main(void)
{
printf("PID = %d\n",getpid());
printf("PPID = %d\n",getppid());
return 0;
}
运行结果:输出的是ID值
进程创建fork
#include <stdio.h>
#include <unistd.H>
#include <sys/types.h>
#include <stdlib.h>
int main(void)
{
pid_t pid;
/*此时只有一个进程*/
pid = fork();
/*此时已经有两个进程同时运行*/
if(pid<0)
{
printf("errer in fork");
}
else if(pid==0)
{
printf("I am the child process, ID is %d\n",getpid());
}
else
{
printf("I am the parent process, ID is %d\n",getpid());
}
}
运行结果:
结果会产生两个!
我们在写多进程程序时所看到的pid==0,是指父进程自己
vfont与font的区别
vfont 共享变量
font 不共享变量
函数族
#include <unistd.h>
int execl(const char *path,const char *arg1,……)
参数:
path:被执行程序名(包含路径)
arg1-argn:被执行程序所需的命令行参数,含程序名。以空指针NULL结束