for(i=0;i<50;i++)
{ printf(\ } else {
while ((p2=fork())==-1); if (p2==0) {
for (j=0;j<50;j++)
{ printf(\ } else {
for(k=0;k<50;k++){printf(\
} } }
从运行结果可知父亲进程、女儿进程、儿子进程并发执行。 如果在每个printf后面加上sleep(1),结果如下:
…
从运行结果可知加上sleep后父进程和两个子进程并发程度更大。
8.编写一个程序,该程序当我们输入Ctrl+C时输出字符串― I got signal‖。在其余的时间,该程序只是无限循环,每一秒输出一条―hello world‖信息。 #include
printf(\ (void) signal(SIGINT,SIG_DFL); }
int main() {
(void) signal(SIGINT,ouch); while(1) {
printf(\ sleep(1);
} }
9.编写程序,实现简单shell的基本功能。读入用户从键盘输入的命令,并执行它。 #include
char command[32]; char * prompt=\ while (printf(\ { if (fork()==0) execlp(command,command,(char*)0); else wait(0); } }
10.利用文件系统的系统调用creat()、open()、read()、write()、close()编写一个程序,把一个文件读出写到另一个文件中,实现简单的copy功能。 main(argc,argv) int argc; char *argv[]; {int fd1,fd2,n; char buf[512];
fd1=open(argv[1],0); fd2=creat(argv[2],0644);
while((n=read(fd1,buf,512))>0) write(fd1,buf,n); close(fd1); close(fd2); }
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Linux系统及编程基础习题答案(4)在线全文阅读。
相关推荐: