资源简介
共四项内容:Linux进程控制、线程同步与通信、共享内存与进程同步、Linux文件目录操作,参考报告详见:http://www.doc88.com/p-8189118756167.html
代码片段和文件信息
#include
#include
#include
#include
pid_t pid1pid2;
int isEnd = 0;
int pf1 = 0;
int pf2 = 0;
/*杀死子进程函数*/
void killProcess()
{
kill(pid1SIGUSR1);
kill(pid2SIGUSR2);
}
void pid1Killed()
{
printf(“child process 1 is killed by parent\n“);
exit(0);
}
void pid2Killed()
{
printf(“child process 2 is killed by parent\n“);
exit(0);
}
int main()
{
int quitPid;
int pipefd[2];
pipe(pipefd);//创建管道
char inPipe[120]outPipe[120];//写入管道和出管道的字符串
while((pid1=fork())==-1);
while((pid2=fork())==-1);
if(pid1==0)
{
signal(SIGINTSIG_IGN);
signal(SIGUSR1pid1Killed);
int x=1;
//锁定写入区域
while(1)
{
lockf(pipefd[1]10);
sprintf(outPipe“I send you %d time\n “x++);
write(pipefd[1]outPipe50);
sleep(1);//阻塞1秒
//解锁写入区域
lockf(pipefd[1]00);
}
}
else
if(pid2==0)
{
signal(SIGINTSIG_IGN);
signal(SIGUSR2pid2Killed);
while(1)
{
lockf(pipefd[0]10);//读区域上锁
if((read(pipefd[0]inPipe50))!=0)printf(“%s“inPipe);
lockf(pipefd[0]10);
}
}else
{
//主进程
signal(SIGINTkillProcess);
waitpid(pid1&quitPid0);
waitpid(pid2&quitPid0);
close(pipefd[1]);
close(pipefd[0]);
printf(“parent process is killed!\n“);
exit(0);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1248 2017-11-27 14:22 实验源代码\lab1\lab1.c
文件 1310 2017-12-04 14:31 实验源代码\lab2\lab2.c
文件 2006 2017-12-25 08:34 实验源代码\lab2\lab2jincheng.c
文件 12163 2017-12-25 15:40 实验源代码\lab3\get\bin\Debug\get
文件 655 2018-01-09 16:01 实验源代码\lab3\get\get.c
文件 1218 2017-12-25 15:17 实验源代码\lab3\get\get.cbp
文件 505 2017-12-25 15:39 实验源代码\lab3\get\get.depend
文件 539 2017-12-25 14:55 实验源代码\lab3\get\get.layout
文件 12373 2017-12-25 14:55 实验源代码\lab3\get\get1
文件 633 2017-12-25 15:15 实验源代码\lab3\get\header.h
文件 99 2017-12-23 16:36 实验源代码\lab3\get\main.c
文件 8360 2017-12-25 15:35 实验源代码\lab3\get\obj\Debug\get.o
文件 181 2017-12-24 15:56 实验源代码\lab3\get\test.txt
文件 12313 2017-12-25 15:40 实验源代码\lab3\lab3\bin\Debug\lab3
文件 12163 2017-12-25 15:35 实验源代码\lab3\lab3\get
文件 12163 2017-12-25 15:35 实验源代码\lab3\lab3\get1
文件 772 2017-12-25 15:15 实验源代码\lab3\lab3\header.h
文件 12313 2017-12-25 15:40 实验源代码\lab3\lab3\lab3
文件 1224 2017-12-25 16:49 实验源代码\lab3\lab3\lab3.cbp
文件 774 2017-12-25 15:41 实验源代码\lab3\lab3\lab3.depend
文件 539 2017-12-25 16:51 实验源代码\lab3\lab3\lab3.layout
文件 873 2017-12-25 15:40 实验源代码\lab3\lab3\main.c
文件 6304 2017-12-23 16:32 实验源代码\lab3\lab3\obj\Debug\copy.o
文件 6280 2017-12-23 16:17 实验源代码\lab3\lab3\obj\Debug\get.o
文件 8784 2017-12-25 15:40 实验源代码\lab3\lab3\obj\Debug\main.o
文件 6032 2017-12-23 16:34 实验源代码\lab3\lab3\obj\Debug\put.o
文件 13061 2017-12-25 15:38 实验源代码\lab3\lab3\put
文件 0 2017-12-25 15:39 实验源代码\lab3\put\get2
文件 633 2017-12-25 15:15 实验源代码\lab3\put\header.h
文件 99 2017-12-23 16:38 实验源代码\lab3\put\main.c
............此处省略32个文件信息
- 上一篇:简单大学生html作业
- 下一篇:d3关系图谱.html
评论
共有 条评论