• 大小: 63KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: Html/CSS
  • 标签: 操作系统  linux  

资源简介

共四项内容: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个文件信息

评论

共有 条评论