1.软件:虚拟机VMware
2.环境:Linux系统环境
创建子进程fork( )
pi d=fork()
pid==-1:进程创建失败
pid==0:子进程创建成功并且执行子进程pid>0:子进程创建成功并且执行父进程。
进程终止 exit(int status)
父进程在子进程末尾置exit(O)终止子进程,子进程向父进程发软中断信号。
status是子进程返回给父进程的整数,以备查考。
进程等待wait(int status)
父进程通过wait(O)等待子进程终止,直到收到子进程发来的进程终止软中断信号后被唤醒。
进程互斥lockf(fd,functi on,size)
被锁定的文件标识
stdin0
stdout1
function:对锁定对象的控制0:开锁1:加锁
size==0:表示从调用Lockf()后开始锁定
1, 进程的并发执行代码
#include
#include
int mian()
{ printf("--System call execlp testing---\n");execlp("date","date",0);printf("exec error!\n");return 0;
}#include
#include
#include
int wait_mark
void waiting()
{while(weit_mark==1);
}
void stop()
{wait_mark=0;
}
int main()
{int p1,p2;while((p1=fork())==1);if(p1==0){wair_mark=1;signal(SIGINT,SIG_IGN);signal(16,stop);waiting();printf("ChildProcess 1 is Killed by Parent!\n");exit(0);}else{while((p2=fork())==1);if(p2==0){wait_mark=1;signal(SIGINT,SIG_IGN);signal(17,stop);waiting();printf("ChildProcess 2 is Killed by Parent!\n");exit(0);}else{wait_mark=1;signal(SIGINT,stop);waiting();kill(p1,16);kill(p1,17);wait(0);wait(0);printf("Parent Process id Killed!\n");exit(0);}}return 0;
}
好好学习,天天向上。