




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 在Linux目录结构中目录中的文件是普通用户可以使用的可使用的可执行文件的目录是B19 A./sbin B./bin C./usr D./lib2. 在Linux目录结构中Linux的内核及引导程序所需要的文件位于B目录 A/bin B./boot C./root D./proc3. 在Linux目录结构中用来存放系统配置文件D目录 A./lib B./dev C./proc D./etc4. Linux三种特殊权限中仅用于目录文件的权限是C22 A.SUID B.SGID 5. Linux三种权限中允许进入目录的权限(C) 22 A.r-可读 B.w-可写 6. 以下脚本文件最先自动执
2、行的是A24A./etc/rc.local B./etc/profile C./.bashrc D./.bash_logout7. 下面通配符可匹配多个任意字符的通配符是(A)29A.* B. ? C.abcde D.!a-e8. 输出重定向符号右边的文件已经存在,不会覆盖文件而是追加的定向符是BA. > B.> > C. 2> D.&>9. 表示用户家目录的是BA./home 所有用户家目录的父目录,+用户名才是用户家目录 B. C. . D. .10. 可删除非空目录及其子目录的命令是BA. touch B.rm -r 11. 是强引用的符号AA. 单
3、引号 12. 可显示隐藏文件的ls命令形式选项是AA. ls -a B. ls -d C.ls -h D .ls -l13. 可通过接受标准输入作为输出内容来创建简单文件的命令是B42A. touch B.cat C.vi D. gedit14. 不带有编辑功能但有翻页、按行滚动、搜索功能的命令是B 43A. cat C.head 和 tail D vi15. wc命令可统计文件的行数、字数和字节数。在以下格式中只显示文件的字数的是C 51A. wc B. wc -c C. wc -w D wc -l16. 可实现文件重命名的命令是B52A. cp B. mv C. ln D rename17
4、. 在Linux系统中可通过挂载将光盘、U盘或一个文件系统连接到主目录树的一个目录节点。期中光盘或光盘镜像对应的文件系统类型是C44A. vfat B. ext3 C.iso9660 D vboxsf18. 下面更改文件命令只能更改符号连接的目标文件的权限的命令是CA. chown B.chgrp C. chmod19. chmod命令的权限模式可使用字符串形式或八进制形式,当使用八进制形式时模式应由三或四位八进制构成,其中从最高到最低位依次表示为A每个八进制的三个二进制位从高到低分别表示为有无读、写、执行权限A.文件所有者 文件所属组 其他用户 B. 其他用户 文件所属组 文件所有者C.文件
5、所属组 文件所有者 其他用户 D.其他用户 文件所有者 文件所属组20. chmod命令的权限模式可使用字符串形式或八进制形式,当使用八进制形式时模式应由三或四位八进制构成,其中每个八进制的三个二进制位从高到低分别表示为有无 AA.读写执行B.写读执行 C.执行 读 写 D.执行 写 读21. 运行时不会创建子进程的方式是C69A. 赋予shell程序文件可执行权限 ,直接运行shell 程序外部命令B. 调用命令解释器解释执行shell程序 Shell函数C.使用source命令执行shell 程序内部命令D.用( )将多条命令括起来而形成的复合命令执行22. 对于使用C连接的两条命令,只有
6、当左边的命令执行失败退出状态为非0值才会继续执行右边的命令。A. ;B. && C. | 23. Shell执行命令在同名时优先级别最高的是AA.别名 24. 将一个变量stab的值清除即成为空串的命令是DA. $stab B.$#stab C.$stab D unset stab25. Shell变量不需要预先定义,假设对其进行数值操作,可指定变量的属性为整数,具体命令为DA. declare -a 变量名 B.declare -f 变量名 C.typeset -r 变量名 D.typeset -i 变量名26. Shell中可表示引用数组abrr中的所有非空元素的引用是B7
7、6A. $abrr B.$abrr * C.$#abrr* D.$#abrr27. 在Shell变量引用操作符可实现字符串替换其中C用来测试如果变量stra存在且不为空,则返回为word,否则返回为空串78A.$stra:-word B. $stra:=word C.$stra: +word D.$stra: ?word 28. 在Shell变量引用操作符可实现字符串替换其中D用来测试,如果变量stra存在,则返回为变量stra的值,否则输出为word ,并退出当前脚本程序A.$stra-word B. $stra=word C.$stra: +word D.$stra: ?word 29.
8、在Shell变量引用操作符可实现模式匹配替换其中B用来的含义是假设pattern 匹配变量stra的头部,则删除最长匹配部分并返回剩余部分。A. $stra #pattern B.$stra#pattern C.$stra%pattern D.$stra%pattern30. 为了使子进程能继承父进程中定义的变量,就必须使D命令将这些变量送入进程转出区83A. read B.set C.shift 31. 使用D形式时,即使表达式中有Shell的特殊字符时,也不必用双引号将其括起来。87A. test 表达式 B. 表达式 C.let 算术表达式 D.算术表达式32. 使用D形式时可以返回算术
9、表达式确实切值A. test 表达式 B. let 算术表达式 C.算术表达式 D.$算术表达式33. gcc可以对编译阶段进行控制,其中B选项规定编译到汇编语言,不进行其他操作。107A. -E B.-S 34. gcc可以对编译阶段进行控制,其中A选项设定库文件的路径 A.-L path 35. gcc可以对编译阶段进行控制,其中D选项在可执行文件中包含标准调试信息,供gdb进行调试。A. -Wall B. -Werror C. -w 36. 在Linux底层文件访问中的大多数操作都是围绕文件描述符来展开的其中A函数是内核向进程返回一个文件描述符为以后使用148A.open() B. re
10、ad() C. write() D.close()37. 最终文件权限取决于DA. mode B. unmask C. mode&unmask D.mode&unmask 非掩码38. Lseek()中第三个参数的值为0表示A39. 文件属性读取函数中,依据文件名且当文件是一个符号链接时返回是链接所指向文件的信息的函数是A152A.stat 40. 利用文件属性读取函数获取的st_mode进行文件类型测试方法正确的选项是DA. 对成员st_mode同文件类型掩码进行与运算 B. 对成员st_mode直接判断C. 利用带成员st_mode参数宏用于文件类型判断定义 D. A和C都
11、可以41. 以下函数中可关闭文件的函数AA.close() B. dup2() C. A和B都可以 D.dup()42. 以下底层文件访问函数中第一个参数是文件描述符的是C157A.chmod B. lchown C. fchown43. 硬链接是B162A. 指向目标文件的指针 B. 指向文件的索引节点C. 可跨越不同文件系统创建 D.可通过symlink()来创建44. 读取链接readlink和删除链接unlink操作对象是(C)163A. 都只对硬链接有效 B. 都对软链接无效B. 读取只对软链接有效,删除都两种都有效 D.读取对两种都有效,删除只对软链接有效。45. 目录文件的读取函
12、数readdir参数和返回值的含义C 167A.C.参数指向目录文件,返回值指向目录项 D.返回值指向目录文件,参数指向目录项46. 对磁盘文件的标准I/O操作一般是实现A17147. 当标准输入和标准输出涉及交互作用设备时,它们是BA.全缓冲 48. 标准错误输出是CA.全缓冲 B.行缓冲 49. 在函数fopen() 中文件打开模式中要求文件必须存在的模式是A172A.r和r+ 50. 在函数fopen() 中文件打开模式中不是可读写的方式打开文件模式是DA.r+ B.w+ C.a+ 51. 在打开函数中其中是在由指定的流上打开由路径名指定的文件,其返回值为指向文件流指针,此函数用于将一个
13、指定的文件打开为一个预定义的标准流CA.open B.fopen C.freopen 52. 以下函数中表示从某流中读取一个字符但该函数不带参数,表示从标准输入流中读字符的函数是C174A.gets B.getc C.getchar 53. 当到达文件尾端或出错时,字符读取函数的返回值都是EOF,为进一步确认文件是否已到文件尾,应当通过B函数来判断。A.ferror B.feof 54. 在定位函数中,可直接将流的读写指针设置到文件的起始位置同时会将错误指示器errno 清零的函数是rewind 182 无答案55. 下面关于ftell函数成功调用说法不正确的选项是CA. D.会撤销已调用un
14、getc对流的影响56. 格式化输出可把格式化数据输出到标准输出、指定文件及字符缓冲区。其中函数是将格式化数据输出到指定大小的字符缓冲区。D183A.printf B.fprintf C.sprintf 57. 格式化输入可从标准输入、指定文件及字符缓冲区读取格式化数据。其中函数是输出到指定文件。BA.printf B.fprintf 58. 关于临时文件不正确的选项是A186A.可通过tmpnam创建 B.也可通过tmpfile创建C.程序结束时或关闭文件时自动删除 D.调用tmpname 次数有限制59. 以下是进程的异常终止的是D193A. 从main中调用return返回 B.调用ex
15、it C.调用_exit 60. 不属于非格式化标准I/O的是C61. 关于exit()函数不正确的选项是B194A. 先清理后进入内核 62. 内核使程序执行的方法的是AA. 调用exec函数63. 关于atexit函数正确的选项是DA. 一个进程可登记超过32个函数 B.函数登记的顺序 和调用顺序相同B. 同一函数可登记多次,但调用一次64. 非初始化数据段由exec赋初值常称为C196A. 正文段 B.数据段 65. 在存储空间布局中从低地址到高地址依次分布为A数据段bss段堆栈 堆bss段数据段正文段堆栈数据段 正文段数据段bss段栈66. PID为0的交换进程是A20067. 调用e
16、xec可能有变化的是D204A.C.调用exec前后实际组ID 68当waitpid函数的pid参数设置为A表示等待任一子进程终止。211A.pid=-1 B.pid=0 C.pid>0 D.pid<-169. fork函数在父进程中的返回值是B206A.0 70. fork函数在子进程中的返回值是A71. 进程可以忽略大部分信号,但以下信号中D不能忽略213A.SIGBORT B.SIGILL C.SIGQUIT 72. 调用exec函数会将原来设置为要捕获的信号都更改为A214A. 默认73. 可用于在不同主机的进程间通信的技术是D225A. 管道 B.共享内存 C.消息队列
17、74. 只能在同源进程间通信的技术A224A. 普通管道 75. 不属于System V IPC通信技术的是AA. 管道 76. 建立从父进程到子进程的管道的方法B225A. 父进程关闭管道的写端,子进程关闭管道读端B.父进程关闭管道的读端,子进程关闭管道的写端76获取某个环境变量值使用函数AAgetenv Bputenv Csetenv Dunsetenv77文件系统保存在磁盘的BA.引导块 78Linux文件系统的根目录的i节点号为CA. 0 B. 1 79文件描述符的数据类型是BA. char B.int 80设置文件偏移量的系统调用是CA. truncateB. syncC . lse
18、ek81下面那个不是lseek第三个参数的取值CA.SEEK_SETB.SEEK_CUR82可以使用C系统调用获得符号链接所引用文件名称A.linkB.symlink83获得工作路径名称的系统调用是AA.getcwd84通过文件属性中的uid获得文件拥有者名字的系统调用是BA.getcwd85通过文件属性中的gid获得文件所属组名字的系统调用是CA.getcwdB.getpwuidC.getgrgid86根据文件路径来改变文件权限使用系统调用是BA.chownB.chmod 一、填空题内核与发行版的关系:是Linux内核版,而是Linux的发行版2.Shell是linux系统的一种命令行用户界
19、面,提供了用户与操作系统进行交互的接口,本质上是命令解释器,可为用户提供个性化的使用环境。文件属性测试、字符串测试、数值测试、逻辑运算。4. 专门执行整数算术运算的命令let所指表达式可执行C语言中常见的算术、逻辑、位运算、比较运算等。 5Vi的三中工作模式:插入模式、命令模式、末行模式。6Gcc生成可执行文件的四个步骤:预处理、编译、汇编、链接。预处理是对源程序进行头文件加载和宏展开等操作,由cpp完成;汇编一是产生汇编代码,二是产生二进制的目标文件,由gcc使用as;生成的多.o文件和使用到的库文件链接成为可被操作系统执行的可执行程序,使用ld工具,可使用两类库文件。7库分为 静态库 和共
20、享库 。静态库由多个.o文件组成的集合,文件成员没有特殊的存在格式,使用“ar”可维护和管理,库文件后缀为“.a”;共享库多个.o文件由编译器按照一定特殊的方式生成。多个可执行程序可共享库文件的代码段,但不共享数据。8命令行参数是main。函数的参数yMain函数的参数假设有两个参数则第一个参数代表命令行参数个数、第二个参数代表指向各命令行参数字符串的指针数组。9Linux 中日期时间的表示方法有:算术类型、结构体类型、字符串类型。10如果一个C程序的入口表示为mainint argc,char *argv,编译该程序后的可执行程序为a.out,那么在命令“./a.out f foo”后,ma
21、in中的参数argv1指向的字符串是“-f”。11Linux系统下表示标准输入、标准输出和标准错误输出的文件描述符符号表示分别为STDIN_FILENO、STDOUT_FILENO 、STDERR_FILENO,它们的值分别为0、1、2。12数字635表示的权限使用字母的方式表示为 rwwxr-x、使用符号方式表示为S_IRUSR | S_IWUSR | S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH。13系统调用open的功能是打开或创建文件。14 使用open打开文件时有三个标志必须要选择其一,这三个标志是O_RDONLY、O_WRONLY、O_RDWR。15文
22、件偏移量代表下一次读或写的位置。16将文件偏移量市值为当前偏移处之前的4个字节的维护使用lseekfd,4,SEEK_CUR。17设置打开文件标志O_TRUNC,可以截断文件为0,使用系统调用truncate可以截断文件或者加长文件。18如果umask设置为022,则创建一个新文件夹数字表示的权限为644、创建一个新目录的权限为755。19如果umask设置为024,则创建一个新文件夹数字表示的权限为642、创建一个新目录的权限为753。20使用系统调用umask可以设置和得到文件模式的屏蔽字。21创建硬链接使用系统调用link,创建符号链接使用系统调用symlink。22获得工作路径名称的系
23、统调用是getcwd。23可以使用stat或fstat或lstat系统调用显示文件属性信息。24chmod,chown,utime都可以修改文件i节点信息,其中chmod的功能是更改文件权限、chown的功能是更改文件所有者和所属组、utime的功能是更改文件访问时间和修改时间。25假设实现将标准输出重定向到文件描述符为6对应的文件上,则应使用语句dup2(6,1)。26系统调用Unlink的作用是删除目录项,这里的目录项是指文件名和文件i节点的对应关系。27打开目录使用DIR *opendir(const char *name)系统调用,关闭目录使用 int closedir(DIR *di
24、r)系统调用,读取目录内容使用struct dirent *readdir(DIR *dir)系统调用。28chdir系统调用的功能是改变当前目录。29创建目录使用int mkdir(const char *pathname, mode_t mode)系统调用、删除目录使用int rmdir(const char *pathname)系统调用。30.popen函数实现的操作:创建一个管道,fork一个子进程,然后关闭管道的不使用端,在子进程中exexc一个shell以执行一条命令,然后等到命令的终止。31.使用kill发送信号时,发送方进程应具有相应的权限:接受和发送进程的所有者相同,发送进程
25、的所有者是超级用户三、简答题1系统调用、库函数的区别和练习从用户角度观察,系统调用和库函数都以C函数形式出现,提供应用户一种功能实现的接口,需要用户输入指定的参数,调用结束得到指定的返回值。从实现者角度观察,库函数是在系统调用上层的函数,库函数一般指程序员可以使用的通用函数。系统调用由两部分组成:1核心函数:是实现系统调用功能的代码,作为操作系统的核心驻留在内存中,是一种共享代码。运行在核心态。2接口函数:是提供应应用程序的API,以库函数的形式存在于Linux的中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把系统调用号,入口参数地址传给相应的核心函数,并使用户
26、态下运行的应用程序陷入核心态。4完成如下命令1新建用户tom 和用户组student#useradd tom#passwd tom#groupadd student2新建文件file#touch file3将文件file 改名为test,然后将test拷贝到/home#mv file test#cp test /home4将/home/test文件的拥有着修改为tom,将文件所属组该为student#chown tom:student /home/test5静态库和共享库的区别1静态库的代码在编译时就已连接到开发人员开发的应用程序中。2共享库只是在程序开始运行时才载入,在编译时,只是简单地指定
27、需要使用的库函数。3静态库文件以.a结尾,共享库文件以.so结尾。 6Linux文件类型主要有哪七类?常规文件、目录文件、字符设备文件、块设备文件、管道文件、链接文件、套接字文件7简述文件、i节点、文件名、目录之间的关系每个存在磁盘上的文件都由i节点和数据块两部分组成,i节点和文件一一对应,一个i节点可以对应多个文件名,文件名和i节点的对应关系叫做文件的硬链接,文件名和i节点的对应关系保存在目录文件中。8什么是文件描述符?1一个非负整数,内核以此来标识一个特定进程正在操作的文件。2012代表三个标准的文件描述符,分别为标准输入、标准输出、标准错误输出9使用符号方式表示rwxrwxrwx权限S_
28、IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH| S_IWOTH|S_IXOTH10写出open一下6种打开标志:只读、只写、读写、追加、文件不存在创建、截断为0O_RDONLY O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC 11读程序,写出执行结果并解释得到该结果的原因main()int fd1,fd2;fd1=open(“/etc/passwd”,O_RDONLY);fd2=open(“/etc/passwd”,O_RDWR);printf(“fd1=%d,fd2=%dn”,fd1,fd2);c
29、lose(fd1);close(fd2);结果:fd1=3 fd2=4原因:open返回的文件描述符为最小可用的非负整数,012是三个标准的文件描述符默认已经被占用,所以第一个open的返回值为3,第二个open返回的是4。12答复stat、fstat、latat三个系统调用的区别stat根据路径获得文件元数据信息fstat根据文件描述符获得文件元数据信息前两者如果遇到符号链接文件则会一直引用至非符号链接文件lstat获得符号链接文件本身的文件元数据信息12dup和dup2的区别和联系联系:dup与dup2都用来将新文件描述符指向原来文件描述符指向的打开文件描述。区别:dup返回的新文件描述符
30、为最小可用的文件描述符,dup2返回的新文件描述符可以通过第二个参数指定。13硬链接和符号链接的区别1命令ln 原文件硬链接文件不能对目录创建硬链接ln s 原文件/目录符号链接文件2是否新增文件:硬链接不增文件,符号链接增加文件。3删除原文件/目录硬链接:对应i节点链接数-1。符号链接:符号链接文件失效。 4删除链接文件删除硬链接文件,使对应i节点的链接数-1。删除符号链接文件,对原文件/目录无任何影响5是否跨文件系统:硬链接不可以,符号链接可以14fork与vfork区别?1fork创建的子进程复制父进程的整个地址空间,vfork不创建这一副本,子进程借用父进程的地址空间,直到其调用exe
31、c族函数或终止;2fork创建的子进程和父进程相互独立地运行,而vfork创建子进程后挂起父进程,直到子进程终止或调用exec族函数。使用kill发送信号时,发送方进程应具有相应的权限:接受和发送进程的所有者相同,发送进程的所有者是超级用户。15阅读以下代码,假设execlp调用成功的话,“Done!”会打印输出吗?为什么?#include<stdio.h>int main()printf(“Running ps with execlpn”);execlp(“ps”,”ps”,”-af”,0);printf(“Done!n”);exit(0);不会输出“Done!”。原因:执行ex
32、eclp(“ps”,”ps”,”-af”,0)调用成功后,当前进程的地址空间被新的程序ps所替代,将执行“ps -af”16试写出以下程序段的运行结果,并解释原因int x=0,int y=0;void thread1(void)printf(“This is pthread1.the sentence 1n”);y=7;sleep(1);printf(“This is pthread1.the sentence 2n”);x=x+y;void thread2(void)printf(“This is pthread1.the sentence 1n”);x=4;sleep(1);printf
33、(“This is pthread1.the sentence 1n”);y=8+y;void main(void)pthread_t id1,id2;pthread_create(&id1,NULL,(void *)thread1,NULL);pthread_ create(&id2,NULL,(void *)thread2,NULL);pthread_join(id1,NULL);pthread_ join(id2,NULL);printf(“x=%d,y=%dn”,x,y);答案:This is pthread1.the sentense 1This is pthread
34、2.the sentense 1This is pthread1.the sentense 2This is pthread2.the sentense 2x=11,y=15原因:1线程1先运行,线程2后运行。线程1执行sleep(1);后阻塞,线程2继续执行,线程2执行到sleep(1);时线程2阻塞,线程1阻塞结束继续执行,线程1执行结束后线程继续执行到结束。2线程1和线程2共享进程的数据段,因此共享变量x,y。17进程间通信的六种方式是什么?简述他们的通信原理?1信号:用于通知接收进程有某种事件发生。2管道:连接一个进程的输出至另一个进程的输入的一种方法。3信号量:一个计数器,用来记录对
35、某个资源的使用情况。4共享内存:允许多个进程访问同一块内存空间。5消息队列:消息的链表,链表中每个节点包括消息类型和正文两部分。6套接字:在网络上主机间进程进行通信的方式。18PIPE与FIFO的区别与联系PIPE为未命名管道,FIFO为命名管道。联系:PIPE和FIFO都是单向传输,一端为读,另一端为写。区别:PIPE只能在有亲缘关系的进程中使用,如父子进程;FIFO有名字,所以只要知道该名字,无关进程之间也可以使用。19书名产生信号的几种方式?1用户操作。如键盘操作Ctrl-C,最终使得内核产生信号SIGINT。2进程执行出错。如浮点数溢出,内核也会产生信号。3进程执行某个系统调用。如调用
36、kill向某个进程或进程组发送信号。20说明信号传递的过程。1生成generating。内核要更新目标进程的数据结构,表示一个新的信号已经被发送给此进程。此时,进程并没有对信号做出任何响应。2传递delivery。强迫目标进程对信号做出响应。四、编程题1向文件f1中写入“hello world!”,然后再将f1中的内容读出并显示在屏幕上。注意必要的错误判断#include <unistd.h>#include <sys/stat.h>#include <sys/fcntl.h>int main()int fd;char buf113="hello
37、world!"char buf212;int num;fd = open( "f1",O_RDWR| O_CREAT | O_TRUNC, 0644);if(fd=-1) perror("f1 not open");exit(1);num=write(fd,buf1,sizeof(buf1)-1); if(num!=(sizeof(buf1)-1) printf("write less than wantn");lseek(fd,0,SEEK_SET);num=read(fd,buf2,12);if(num!=12)prin
38、tf("read less than 12n");write(1,buf2,12);close(fd);2向文件f2中写入“aabbccddee”,然后将偏移量移到绝对值偏移为4的位置处,读6个字符,并将结果显示在屏幕上#include <unistd.h>#include <sys/stat.h>#include <sys/fcntl.h>int main()int fd;char buf111="aabbccddee"char buf210;int num;fd = open( "f2",O_R
39、DWR| O_CREAT | O_TRUNC, 0644);if(fd=-1) perror("f2 not open");exit(1);num=write(fd,buf1,sizeof(buf1)-1); if(num!=(sizeof(buf1)-1)printf("write less than wantn");lseek(fd,4,SEEK_SET);num=read(fd,buf2,6);if(num!=6)printf("read less than 6n");write(1,buf2,6);close(fd);3向文件
40、f3中写入“aabbccddeeffgghh”,然后将文件截短后的文件内容读出并显示在屏幕上#include <unistd.h>#include <sys/stat.h>#include <sys/fcntl.h>int main()int fd;char buf117="aabbccddeeffgghh"char buf28;int num;fd = open( "f3",O_RDWR| O_CREAT | O_TRUNC, 0644);if(fd=-1) perror("f3 not open"
41、;);exit(1);num=write(fd,buf1,sizeof(buf1)-1); if(num!=(sizeof(buf1)-1)printf("write less than wantn");lseek(fd,0,SEEK_SET);ftruncate(fd,8);num=read(fd,buf2,8);if(num!=8)printf("read less than 8n");write(1,buf2,8);close(fd);4实现“cat文件名”显示文件内容#include <fcntl.h>main(int argc,ch
42、ar *argv) int fd; int num; char buf10; if(argc!=2) printf("miss filenamen"); exit(1); fd=open(argv1,O_RDONLY); if(fd=-1) perror("error open"); exit(1); while(num=read(fd,buf,10)!=0) write(1,buf,num); close(fd);5实现“cp 原文件 目标文件”#include <sys/stat.h>#include <fcntl.h>mai
43、n(int argc,char *argv) int from,to; int num; char buf10; if(argc!=3) printf("argument errorn"); exit(1); from=open(argv1,O_RDONLY); to=open(argv2,O_WRONLY|O_CREAT|O_TRUNC,0644);num=read(from,buf,10);while(num!=0)write(to,buf,num);num=read(from,buf,10); close(from); close(to);6编写程序pro3.c,将字
44、符串“hello world”通过输出重定向方式写入文件f1中#include <stdio.h>#include <unistd.h>#include <fcntl.h>#include <sys/stat.h>#include <sys/types.h>main()int fd;if(fd=open("f1",O_WRONLY|O_CREAT,0644)=-1)perror("open fail");if(dup2(fd,1)=-1)perror("Redirect failed&
45、quot;);printf("Hello worldn");close(fd);7使用fork创建进程,在子进程中打印“I am the child”和子进程pid,在父进程中打印“I am the father”和父进程pid#include <sys/types.h>#include <stdlib.h>#include <stdio.h>int main() pid_t pid; pid = fork(); if(pid < 0) perror("fork"); exit(1); else if(pid =
46、 0) printf("I am the childn"); else printf("I am the fathern"); exit(0);8创建子进程,在子进程中执行“ps -A”命令,父进程等待子进程结束后打印“child over”及所处理的子进程进程号#include <sys/types.h>#include <stdlib.h>main()pid_t pid,cpid;int i;char* args64; args0=”ps”; args1=”-A”; args2=NULL; pid=fork();if(pid&
47、lt;0)perror(“fork”);exit(1);else if(pid=0)execvp(args0,args);exit(0);elsecpid=wait(NULL);printf(“child over! cpid=%dn”,cpid);9编写程序处理SIGINT信号,当程序接收到SIGINT信号后输出“SIGINT is caught”#include <stdio.h>#include <signal.h>void signal_handler(int signum) switch(signum) case SIGINT: printf("SI
48、GINT is caught!n"); break; int main() signal(SIGINT,signal_handler); pause(); return 0;10使用PIPE时限父子进程向子进程发送1234567890,子进程接收并显示#include <sys/types.h>#include <stdio.h>main() int pfd2; char buf32; pid_t pid; pipe(pfd); if(pid=fork()<0) perror("fork"); else if(pid>0) cl
49、ose(pfd0); write(pfd1,"1234567890",11); else close(pfd1); read(pfd0,buf,11); printf("child read:%sn",buf); 一、单项选择题 1、Linux操作系统内核创始人是 C ABill Gates BRichard Stallman 2、以下哪种不是Linux的Shell类型 C Abash Bksh Crsh Dcsh3、下面关于Shell的说法,不正确的选项是 B 。A、一种命令语言解释器 B、一种和C类似的程序语言C、操作系统的外壳 D、用户与Linux
50、内核之间的接口程序4、hda3表示 B 。A、IDE0接口上的从盘 B、IDE0接口上主盘的第三个分区 C、IDE0接口上的第三个主分区 D、IDE0接口上的第三个逻辑分区 5、一般情况下,Swap的大小建议是 C 。A、50M B、100M C、内存大小的2倍 D、150M6、Linux下的cd命令可以改变用户的当前目录,当用户键入cd并按回车后, A 。A、当前目录改为用户主目录 B、当前目录改为根目录C、当前目录没有变 D、当前用户改为上一级目录7、在字符界面下启动X-Window的命令是 BA、start B、startx C、begin D、beginx二、填空题将正确答案填在每题的空格内。此题共40空,每空1分,共40分)1、安装Linux时经常建议初学者将磁盘分两个分区,分别是根分区和SWAP交换分区。2、Linux的内核版本分为_稳定版_和开发版,其版本号通常由3个数字组成,并表示为X、Y、Z的形式,X代表_主版本号_,Y代表_次版本号_,Z代表_末版本号_。其中,Y如果是偶数,则代表这个内核版本是_稳定版_,可以公开发行。3、如果将硬盘接在第一个IDE接口的从硬盘上,在Linux系统中这个硬盘代号是_hdb_。这个硬盘第二个逻辑分区的代号是_hdb6_。4、在Windows与Linux并存的电脑中,安全删除Lin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025租赁公寓转租合同协议书
- 2025合同解除补偿协议书
- 2024-2025学年度湖南省株洲世纪星高级中学高二下学期第一次月考历史试题(含答案)
- 景德镇市重点中学2025届高三下学期期中数学试题理试题
- 25年一月份全屋隔音棉验收补充协议
- 第5课 隋唐时期的民族交往与交融(课件)-2024-2025学年七年级历史下册同步教学课件(统编版2024)
- 助残委托服务协议
- 幼儿园常见事故预防和处理
- 李努生:对加强廉政建设的思考
- 2025安全巡查员技能提升合同模板
- 2025年上半年江西省水务集团限责任公司招聘60人易考易错模拟试题(共500题)试卷后附参考答案
- 人教版小学数学四年级下册第五单元《三角形》作业设计
- 2025年辽宁省能源控股集团所属辽能股份公司招聘笔试参考题库附带答案详解
- 第五课 我国的根本政治制度课件高考政治一轮复习统编版必修三政治与法治
- 2024年南通市公安局苏锡通园区分局招聘警务辅助人员考试真题
- 不良资产处置业务操作流程与财务管理
- 填海石采购合同6篇
- 2025届山东省青岛市高三下学期一模英语试题(原卷版+解析版)
- 江苏省苏州市2022-2023学年高二下学期数学期中试卷(含答案)
- 2025届福建省厦门市高三第二次质量检测地理试题(原卷版+解析版)
- 车队安全学习培训课件
评论
0/150
提交评论