《南京信息工程滨江Linux-期末课程设计》由会员分享,可在线阅读,更多相关《南京信息工程滨江Linux-期末课程设计(8页珍藏版)》请在金锄头文库上搜索。
1、滨江学院课程设计报告题 目 Linux 课程设计 院 系 计 算 机 系 专 业 计算机科学与技术 学生姓名 学 号 2014年12月20日一、 Shell编程题(1) 编写一个shell脚本,求费波纳奇数列的前20项及总和。运行结果如图:(2) 在根目录下有四个文件 m1.txt,m2.txt,m3.txt,m4.txt,用 Shell 编程,实现自动 创建 m1,m2,m3,m4 四个目录,并将 m1.txt,m2.txt,m3.txt,m4.txt 四个文件分别拷贝到各自相应的目录下。程序运行之前目录结果如下: 程序源码如下:运行之后目录结构如下:(3) 编写shell程序,使得使用者输
2、入一个文档名,做出以下判断:a) 这个文件是否存在,若不存在则给予一个“Filename does not exist”的信息,并中断程序;b) 若这个文件存在,则判断他是个文件或目录,结果输出“Filename is regular file”或“Filename is directory”;c) 判断一下,运行者的身份对这个文件或目录所拥有的权限,并输出权限数据! 输入一个不存在的目录结果如下:程序源码如下:输入一个已存在的目录,得到权限信息如下:(4) 设计一个shell程序cuts,它由标准输入读取数据,获取由第一个参数n和第二个参数m所限定范围的数据,n和m都是整数。即从输入的字符串
3、中抽取第n个字符至第m个字符之间的所有字符(包括这两个字符)。例如:$cuts 11 14 This is a test of cuts program (键盘输入)test (显示结果)程序源码如下:程序运行结果如下:二、 Linux下C语言程序设计课程设计Linux下用C语言进程实现一#include#include#include#includemain()pid_t pid1,pid2;char str120,str220;if(pid1=vfork()0)perror(创建子进程一错误!n);exit(0);else if(pid1=0)printf(输入字符串一:);scanf(%
4、s,str1);exit(0);if(pid2=vfork()0) perror(创建子进程二错误!n);exit(0);else if(pid2=0)printf(输入字符串二:);scanf(%s,str2);exit(0);waitpid(pid1,NULL,0);waitpid(pid2,NULL,0);printf(你输入的字符串一:%sn,str1);printf(你输入的字符串二:%sn,str2);二.#include#include#include#include#include#include#include#include#include#define key 1024#
5、define size 160static void sign(int);int shmid;char* shmaddr;main()pid_t pid;char str20;shmid=shmget(key,size,IPC_CREAT|0600);if(pid=fork()0)perror(创建子进程错误!n);exit(0);else if(pid=0)if(signal(SIGUSR1,sign)=SIG_ERR)printf(SIGUSR1错误!n);exit(0);pause();printf(子进程结束!n);exit(0);sleep(1);shmaddr=(char*)shm
6、at(shmid,NULL,0);printf(请输入字符串:);scanf(%s,str);strcpy(shmaddr,str);shmdt(shmaddr);kill(pid,SIGUSR1);wait();shmctl(shmid,IPC_RMID,NULL);static void sign(int signnum)int fd;char* shmaddr;if(signnum=SIGUSR1)printf(子进程接收到SIGUSR1.n);shmaddr=(char*)shmat(shmid,NULL,0);if(fd=open(testfile.txt,O_RDWR|O_CREA
7、T|O_TRUNC)=-1)printf(n打开文件错误!n);return 0;elseprintf(写入:%sn,shmaddr);write(fd,shmaddr,20);close(fd);shmdt(shmaddr);运行结果:实验总结 通过这次实验,大致对linux有一个系统的了解,能在linux上进行简单的使用,对linux中的各个文件的配置文件进行了直观的了解,但是总体上来说,只能晦涩的运用,没有进行过深度探究和linux知识整合。对于linux的特点有深刻的认识,比如说linux是多用户多任务、高度稳定性、良好兼容性、强大的可移植性、支持多种文件系统、高效内存管理、完善的网络功能、图形化界面。由于linux的以上特点使得linux的发展方向向桌面、工作站、服务器、嵌入式系统,但是我认为linux在嵌入式系统和服务器会以更加快的速度发展Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。