进程是通过逻辑语句来判断 第i个进程做什么事情
程序二进制文件,占用的磁盘空间
进程,启动的应用程序所有的数据都在内存中
需要占用更多的系统资源
创建子进程
int fork (void)
父子进程的进程id不一样,
对于fork函数的返回值,可以据此区别父子进程父进程返回子进程的id,说明子进程创建成功
子进程返回0
注:父进程执行到哪,子进程就从哪开始执行
如下程序,
当i=0时,创建第一个子进程,此时第一个子进程从i=0开始执行
当i=1时,创建第二个子进程,此时第二个子进程从i=1开始执行
#include#include #include #include #include int main(int argc, const char * argv[]) { int num = 2; int i; for (i=0; i 父子进程执行顺序 不一定,谁先抢到,谁先执行
shell不知道创建了子进程
父进程执行完后,shell切换到前台,所以,只有子进程执行完后父进程才结束。
不能根据打印顺序确定执行顺序
可以用如下代码进行验证#includegetpid#include #include #include #include int main(int argc, const char * argv) { pid_t pid; printf ("上n"); for (int i=0; i<4; i++) printf ("%d ", i); printf ("n"); pid = fork(); //头文件为unistd.h if (pid>0) { printf ("p pid = %d", getpid()); } else if (pid == 0) { printf ("C : pid = %d , ppid = %d", getpid(), getppid()); } printf ("下n"); for (int i=0; i<4; i++) printf ("%d ", i); printf ("n"); return 0; } 得到当前进程的进程id
getppid得到当前进程的父进程id
通过实例加深对进程的理解



