Linux期末考试重点
Linux环境下用C编写程序,要求把输入的百分制的成绩转换成五级制输出。即 输入成绩大于等于90分,显示“优秀”;若成绩介于8090分,显示“良好”; 若成绩介于7080分,显示“中等”;若成绩介于6070分,显示“及格”;若 成绩小于60分,显示“不及格”。并写出makefile文件和执行过程 gcc test.c -o test ./test /homework即可,你可以自己建立一个目录,里面放上文件试试。 ttinclude stdio. h ttinclude stdlib. h ttinclude dirent. h ttinclude sys/pes. h ttinclude string. h void printdir char * pathname; ttdef ine STR1 〃honie-work〃 ttdefine STR2 〃、doc〃 char list[40]; int main int argc, char * argv[] { ifargc2||argc3 printfwrong usage\n〃; exit -1; } char p[128]; strcpy p, argv[l]; memset void *list, -1 ,40; printdirp; int i0, j0; for i0;i40;i { if list [i]l j; } printftotally d students5 home work\n〃,j; return 0; } void printdir char* pathname DIR * pdirNULL; struct dirent *dir_entry二NULL; int llstrlenSTR1; pdir opendirpathname; ifvoid * -1 pdir { perror cannot open diretory; exit -1; } while 1 dir_entry readdir pdir; ifNULL dir_entry break; else if strncmp dir_entry-d_name, STR1, strlenSTR1 0 strcmp dir_entry-d_name [112], STR2 0 char a dir_entry-d_name[11]; char b dir_entry-d_name[111]; char c 10* a - ’0 b-O; if cl c40 list [c-l]l; } //printf 〃%s〃,dir_entry-d_name; } close pdir; 本学期对于Linux系统的学习,让我对Linux有了一定的了解。我知道了 Linux只是个内核。 现在的Linux操作系统,都是用这么一个内核,加上其它的应用程序构成的。Linux最大的 特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一,使其在金 融、安全等部门有很重要的应用。学习Linux,首先我们应该从基础开始学起。对Linux操 作系统的功能、版本、特点,以及Linux系统安装和图形环境有较全面的了解。Linux命令 是必须学习的。虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。 Linux是一个命令行组成的操作系统,精髓在命令行,学习如何在安全的环境中执行系统命 令,包括有关文件、目录、文件系统、进程等概念,如何使用相应的命令对文件、目录、进 程等进行管理,了解遇到问题时,如何找到帮助信息等。Linux常用命令,有echo命令、 date命令、passwd命令、file命令、Is命令、touch命令等。要明白学好Linux不是一件一蹴 而就的事,一定要能坚持使用它,特别是在学习初期。要增加自己的Linux技能,只有通过 实践来实现。只要多动手,就一定会有收获。遇到问题时要自己去寻找答案,在寻找答案的 过程中,会学到更多知识。应该说目前我们对于Linux的学习只是入门而已,学习Linux是 一个长期的过程,很耗时间。作为电子信息工程专业的学生,对我们来说,Linux将来主要 应用于嵌入式Linux系统的开发,这非一日之功,我们还需要不断深入地学习它。 信号量机制 includestdio.h includesemaphore.h includepthread.h sem_t seml,sem2,sem3;〃信号量 void *fathervoid *arg//father 线程 { whilel { sem_waitsem 1; printf father put an apple\n; sem_postsem2; } } void *mathervoid *arg//mother 线程 { whilel { sem_waitseml; printf mather put an orange\n; sem_postsem3; } } void *dagutervoid *arg //daughter 线程 { whilel { sem_waitsem2; printf daguter get an apple\n; sem_postsem 1; } void *sonvoid *arg //son 线程 whilel sem_waitsem3; printf son get an orange\n sem_postsem 1; int main 〃主函数 pthread_t tl,t2,t3,t4;//定义线程标志 sem_initseml,0,1; 〃初始化信号量 sem_initsem2,0,0 sem_initsem3,0,0; 〃创建线程 pthread_createt 1,NULL,father,NULL; pthread_createt2,NULL,mather,NULL; pthread_createt3,NULL,daguter,NULL; pthread_createt4,NULL,son,NULL; /*共享内存允许两个或多个进程进程共享同一块内存这块内存会映射到各个进程自己 独立的地址空间 从而使得这些进程可以相互通信。 eGNU/Linux中所有的进程都有唯一的虚拟地址空间,而共享内存应