实验一:熟悉linux命令_第1页
实验一:熟悉linux命令_第2页
实验一:熟悉linux命令_第3页
实验一:熟悉linux命令_第4页
实验一:熟悉linux命令_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统实验报告 实验一:熟悉 Linux 命令 一、 实验目的 熟悉 Linux 系统,掌握 Linux 系统的登入、退出等操作; 熟悉 Linux 命令及进程管理; 学会使用 Linux 下 C 语言编程的基本知识; 二、 实验内容 1、Linux 基本操作 2、文件与目录操作 3、进程查看及在线帮助 4、全屏幕文本编辑器 Vi 的熟悉 5、Linux 下 C 语言编程基础知识 三、 代码及运行结果分析 1、Linux 基本操作,Linux 系统的登入 1.文件与目录的基本操作 显示文件目录命令 ls 改变当前目录命令 cd 建立子目录 mkdir 删除子目录命令 rmdir 删除文件命令 rm 文件改名命令 mv 文件复制命令 cp 2、进程查看命令 进程查看 who 命令 ps 命令 top 命令 4、在线帮助 联机帮助 man 命令 联机帮助 help 命令 whereis 命令查看 ls 命令所在位置 5、全屏幕文本编辑器 Vi 及 Linux 下 C 语言基础编程 1) e06620208localhost e06620208$ vi sj.c #include int main() printf(“helloworld“); return 0; : “sj.c“ New 6L, 65C written e06620208localhost e06620208$ gcc sj.c -o sj e06620208localhost e06620208$ ./sj helloworlde06620208localhost e06620208$ 2) e06620208localhost e06620208$ vi sjj.c #include main() printf(“The current process ID is %dn“,getpid(); “sjj.c“ New 5L, 83C written e06620208localhost e06620208$ gcc sjj.c -o sjj e06620208localhost e06620208$ ./sjj The current process ID is 24189 e06620208localhost e06620208$ vi 1.c #include #include main() pid_t pid; pid=fork(); if(pid main() printf(“this process will exit!n“); exit(0); printf(“never be displayed!n“); “jj.c“ New 7L, 114C written e06620208localhost e06620208$ gcc jj.c -o jj e06620208localhost e06620208$ ./jj this process will exit! 分析:程序运行到 exit(0);时将退出 printf();语句不执行,程序最终输出 this process will exit! 4) e06620208localhost e06620208$ vi jjj.c #include #include main() pid_t pid; pid=fork(); if(pid #include #include #include main() pid_t pc,pr; pc=fork(); if(pc main() int p1,p2; while(p1=fork()=-1); if(p1=0) printf(“b.My process ID is %d“,getpid(); else while(p2=fork()=-1); if(p2=0) printf(“c.My process ID is %d“,getpid(); 25225 25 25225 i=25225 i=0 进程号 else printf(“a.My process ID is %d“,getpid(); “s2.c“ New 15L, 279C written e06620208localhost e06620208$ gcc s2.c -o s2 e06620208localhost e06620208$ ./s2 b.My process ID is 25425c.My process ID is 25426a.My process ID is 25424e066202 07localhost e06620208$ 分析:程序 2 运行,满足 p1=0,输出父进程 ID,p1=fork(),p1 值发生改变, else 条件满足,之后再判断 p2 的值同样输出子进程的 ID,最后输出下级子进 程的 ID,运行结果如上。程序执行后其进程树如下: 3) e06620208localhost e06620208$ vi s3.c #include main() int m,n,k; m=fork(); printf(“PID:%dt“,getpid(); printf(“The return value of fork():%dtt“,m); printf(“hen“); n=fork(); printf(“PID:%dt“,getpid(); printf(“The return value of fork():%dtt“,n); printf(“han“); k=fork(); printf(“PID:%dt“,getpid(); printf(“The return value of fork():%dtt“,k); printf(“hon“); “s3.c“ New 17L, 347C written e06620208localhost e06620208$ gcc s3.c -o s3 e06620208localhost e06620208$ ./s3 PID:25580 The return value of fork():0 he PID:25581 The return value of fork():0 ha PID:25582 The return value of fork():0 ho PID:25581 The return value of fork():25582 ho PID:25580 The return value of fork():25581 ha PID:25579 The return value of fork():25580 he PID:25584 The return value of fork():0 ha 25424 25425 25426 p1=25425,p2=25426 p1=25425,p2=0 p1=0,p2=0 PID:25579 The return value of fork():25584 ha PID:25586 The return value of fork():0 ho PID:25579 The return value of fork():25586 ho e06620208localhost e06620208$ PID:25583 The return value of fork():0 ho PID:25580 The return value of fork():25583 ho PID:25585 The return value of fork():0 ho PID:25584 The return value of fork():25585 ho 分析:产生进程树如图所示: 4) e06620208localhost e06620208$ vi s4.c #include main() int p1,p2,i; while(p1=fork()=-1); if(p1=0) for(i=0;i main() int m,n,k; m=fork(); printf(“PID:%dt“,getpid(); printf(“The return value of fork():%dtt“,m); printf(“hen“); n=fork(); printf(“PID:%dt“,getpid(); printf(“The return value of fork():%dtt“,n); printf(“han“); k=fork(); if(m0 printf(“The return value of fork():%dtt“,k); printf(“hon“); “s5.c“ New 19L, 363C written e06620208localhost e06620208$ gcc s5.c -o s5 e06620208localhost e06620208$ ./s5 PID:25979 The return value of fork():0 he PID:25978 The return value of fork():25979 he PID:25981 The return value of fork():0 ha PID:25978 The return value of fork():25981 ha PID:25983 The return value of fork():0 ho PID:25978 The return value of fork():25983 ho e06620208localhost e06620208$ PID:25980 The return value of fork():0 ha PID:25979 The return value of fork():25980 ha 分析:设置 if(m0 int f1,f2,f3; while(p1=fork()=-1); if(p1=0) while(!f2i10;i+) printf(“son%dn“,i); else while(p2=fork()=-1); if(p2=0) f2=lockf(1,1,0); for(i=0;i10;i+) printf(“daughter%dn“,i); else f3=lockf(1,1,0); for(i=0;i10;i+) printf(“parent%dn“,i); “s.c“ New 28L, 344C written e06620208localhost e06620208$ gcc s.c -o s e06620208localhost e06620208$ ./s daughter0 daughter1 daughter2 daughter3 daughter4 daughter5 daughter6 daughter7 daughter8 daughter9 daughter10 parent0 pa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论