1、管理输入和输出;*可编程.5. popen的工作原理?首先把输入输出重定向,通过for命令来创建一个新的进程,使用管 道进行连接,并且使用fdopen命令将一个文件描述符定向到缓冲流中, 最后通过shell来运行6web服务器的工作原理?客户端 服务器端:建立服务连接服务器- 接收请求写请求- 读取请求处理请求:显示冃录列表,显 示内容,运行.读取应答 V二二挂断显示应答8. ps是用来查看进程的.9. Kill命令是用来发送信号(进程之间) lO.Open打开文件返回句柄11. Popen打开一个指向进程的带缓冲的连接12. Fopen打开文件返回指针.13.Fdopen是将句柄变成指针,只
2、知道文件描述符.14 目录操作的命令?创建一 mkdir.删除rmdir.打开 一 open.文件操作命令?创建-mk删除-rm 重命名或移动-mv15.cd.:表示回到上一级目录16Cd:表示回到主目录.17. $:可取变量的值,也可以取程序的执行结果.18. Wc:表示读单读.19. Lseek:定位文件指针.20. Chmod:改变文件权限.21捕鼠器:信号处理函数有点像捕鼠器,一个信号意味着什么具有破 坏性的事情发生,并被抽获当信号或老鼠被捕获,信号处理函数或捕 鼠器就失效了.22时间差:在弹簧被触发和设置完成之间,需要点时间迪叫”不可靠的 信号23.Set-ticker:通过初始间隔
3、和重复间隔设置间隔计时器.24.如何发送信号?一个进程通过系统调用kill给另一个进程发送信号.中断信号 -sigint.退出信号-sigout.非法取段信号-sigsegv. ctrl-c/ctrl-:产生和 中断信号.25什么是shell脚本语言?及如何处理脚本?shell脚本是一个包含一系列命令的文件,运行一个脚本就是运行这 个文件屮的每个命令,对于一个脚本只需要执行一次chmod,可执行位 将保持不变直到下一次在改变它.26. shell包括两类变量:局部变量和环境变量.27. Pwd工作过程:得到的i节点号,称其为n(使用 stat);(2)chdir.(使用chdir);(3)找至
4、!J i节点号n连接的名字(使用 opendirreadirclosedir);重复(直到到达树的顶端).2&标准文件描述符?标准输入(stdin)-需要处理的数据流标准输出(stdout)-结果数据流标准错误输出(stderr)-错误消息流.29什么是超级用户?他有什么特征?linux中的超级用户指root,也称为根用户,具有最高权限,它可以终 止进程,添加或删除硬件设备,超越任何用户组的权限对文件或根目录 进行读取,修改和删除.30什么是home目录?对于不同的用户来说他们的home目录是否一 样?存放每个用户的主目录,用户各自的数据分别单独存在这个目录里, 目录的大小取决于用户的多少,每
5、个home目录不一样.31什么叫系统调用?由操作系统实现的所有系统调用所构成的集合即程序接口或应用编 程接口(Application Programming Interface, API)。是应用程序同系统 之间的接口。fork创建一个新进程 clone按指定条件创建子进程 execve 运行可执行文件 exit中止进程 _exit立即中止当前进程 getdtablesize进程所能打开的最大文件数32权限怎么表示?例如:linux下某文件权限为drw -r r-,用数值形式表示该权限,则八进制数为 ,文件类型为 答案:644,目录文件4 表示文件或者冃录的读权限2 表示文件或者目录的写权限1
6、 表示文件或者目录的执行权限33怎么修改文件权限?chmod用法?+表示增加权限、表示取消权限、=表示唯一设定权限。r表示可读取,w表示可写入,x表示可执行,X表示只有当该档 案是个子目录或者该档案已经被设定过为可执行。-rw (600)-只有属主有读写权限。-rw-r-r- (644)-只有属主有读写权限;而属组用户和其他用户只有 读权限。-rwx(700)-只有属主有读、写、执行权限。-rwxr-xr-x (755)-属主有读、写、执行权限;而属组用户和其他用户 只有读、执行权限。-rwx-x-x (711)-属主有读、写、执行权限;而属组用户和其他用户 只有执行权限。-rw-rw-rw-
7、 (666)-所有用户都有文件读、写权限。这种做法不可取。 -rwxrwxrwx (777)-所有用户都有读、写、执行权限。更不可取的做 法。34.a=b:表示把b存到a中,右边表变量值,左边表变量名.35Shell脚本的功能:count=$# #获取脚本参数个数cmd=echo #初始化cmd变量,赋值为“echowhile $count -gt 0 #如果count大于0,执行下面的循环do cmd=H$cmd $countn # 给 cmd 重新赋值,变为echo $count 的值”count=,expr $count-l # count 减 1done #之后回到上面的while判断
8、eval $cmd # 执行 cmd 命令。二试卷判断题.1. open返回的文件描述符的类型为FILE* ( )2. 内核缓冲区位于磁盘文件中(v)3. lseek函数用于在文件中查找字符串(v)4. 任何用户不能修改文件类型(V )5. 链接(link)是一个指向文件的指针 (V )6. 软件工具总是针对特殊的终端模式来设计( )7. 软件工具总是从标准输入或文件來获取需要处理的数据(V)8. 所有的信号都可以被忽略 (v )9. fdopen用于打开指定文件名的文件(v )10. fopen可以打开设备文件但不能打开磁盘文件(v )三试卷简答题1 如何在linux中获取必要的编程参考信息
9、?阅读联机帮助;搜索联机帮助;阅读头文件;使用参照信息;2.进程如何处理信号?接受默认处理;忽略信号;调用一个函数;3Shell是如何实现输入0(输出1)重定向的?(1) 调用close关闭文件描述符0(1);(2) 调用open打开文件;(3) ,根据最低可用文件描述原则,新文件描述符为0(1);(4) 调用exec函数执行命令;(5) 命令的标准输出来口于(进入)文件.4. 请简要说明什么是搜索路径Linux里的指令(commands)都是文件,如果直接敲,并被执彳亍,说明 该指令在你的搜索路径内,否则会有错误(command not found )。 用echo $PATH会显示搜索路径
10、中含有哪些directorieso如:$echo $PATH一般在 home directory 的.profile 屮定义(与所用 shell 有 )。5. 请简要说明你选择的是Linux发行版的特点?Slackware特点:系统非常稳定、安全,并且高度坚持UNIX的规范; 不过市于所有的配置均通过编辑文件来进 行,只适用于对liiwx非常 熟悉的用户,而且自动硬件检测能力较差.6. 请简要说明文件的时间属性和链接数属性?最后修改时I可;最后访问时间;属性最后修改时间.7 文件有哪些基本属性?文件类型 许可位与特殊属性位 连接数 所有者 组 文件大小 时间文件名8你是如何了解到who命令工作
11、原理的?Man who,man -k utmp.man 4 utmp,More/usr/include/utmp.h五、代码分析(10分) 请分析下列脚本实现了什么功能。who I sort prev #将who的标准输出连接到sort的标准输入while truedosleep 30 #休眠 30 秒 current #获取当前在线用户的信息 echo Logged out: comm -23 prev current #显示 prev-current 的内容echo HLogged in:”comm 13 prev current #显示 current-prev 的内容 mv curre
12、nt prev #用 current 替换 prevdone六编程1 请用多线程实现一个单词计数器程序,主进程接受命令行上不定数 目的文件名,为每个文件创建一个计数进程统计该文件中的单词数,然 后把统计结果交由初始线程总输出.#include# include#define oop(s,x)perror(s);Exit(x);Int main(int ac,char*av)FILE *pipe;Int words;Int total;Char cmdBUFSIZ+9,Inti;If(ac=l)fprintf(stderr,usage:%file.nn,%av);Exit(l);Pipes=(F
13、ILE*malloc(ac*sizeof(FILE*);If(pipes=NULL)Oops(nmallocH,2);For(i=l;iBUFSIZ)Fprintf(stderr,npathname%s too longnH,avi);Exit(3);Sprintf(cmd,Hwc-w#define oops(m,x)perror(m);exit(x);Main(int ac,char *av)int thepipe2,Newfd,pid;If(ac!=3)Fprintf(stden;nusage:pipe cmdl cmd2nn);If(pipe(thepipe)=-1)Oops(Hcann
14、ot get a pipeM,l);If(pid=fork()=-1)Oops(Hcannot fork,2);If(pid0)Close(thepipel);If(dup2(thepipe0 ,0)=-1)Oops(ncould not redirect stdin*,3);Close(thepipe0);Execlp(av ,a v ,NULL);Oops(av2,4);close(thepipe0);If(dup2(thepipe 1 , 1 )=-1)Oops(ncould not redirect stdout1,4);Close(thepipefl);Execlp(avl,avl,NULL);Oops(avl,5);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1