資源簡介
共四項內容: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
評論
共有 條評論