1、- -1. 在Linux目录构造中目录中的文件是普通用户可以使用的可使用的可执行文件的目录是B19A./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 C.黏滞位 D.都可以5. Linux三种权限中允许进入目录的权限(C) 22 A.r-可读 B.w-可写 C.x
2、-可执行 D.都不是6. 以下脚本文件最先自动执行的是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 C.mkdir D.rmdir空目录
3、11. 是强引用的符号AA. 单引号 B.反引号 C.双引号 D.中括号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 B.more和less C.head 和 tail D vi15. wc命令可统计文件的行数、字数和字节数。在以下格式中只显示文件的字数的是C 51A. wc B. wc -c C. wc -w D wc -l16.
4、 可实现文件重命名的命令是B52A. cp B. mv C. ln D rename17. 在Linux系统中可通过挂载将光盘、U盘或一个文件系统连接到主目录树的一个目录节点。期中光盘或光盘镜像对应的文件系统类型是C44A. vfat B. ext3 C.iso9660 D vboxsf18. 下面更改文件命令只能更改符号连接的目标文件的权限的命令是CA. chown B.chgrp C. chmod D.以上都不对19. chmod命令的权限模式可使用字符串形式或八进制形式,当使用八进制形式时模式应由三或四位八进制构成,其中从最高到最低位依次表示为A每个八进制的三个二进制位从高到低分别表示为
5、有无读、写、执行权限A.文件所有者 文件所属组 其他用户 B. 其他用户 文件所属组 文件所有者C.文件所属组 文件所有者 其他用户 D.其他用户 文件所有者 文件所属组20. chmod命令的权限模式可使用字符串形式或八进制形式,当使用八进制形式时模式应由三或四位八进制构成,其中每个八进制的三个二进制位从高到低分别表示为有无 AA.读写执行B.写读执行 C.执行 读 写 D.执行 写 读21. 运行时不会创立子进程的方式是C69A. 赋予shell程序文件可执行权限 ,直接运行shell 程序外部命令B. 调用命令解释器解释执行shell程序 Shell函数C.使用source命令执行she
6、ll 程序部命令D.用( )将多条命令括起来而形成的复合命令执行22. 对于使用C连接的两条命令,只有当左边的命令执行失败退出状态为非0值才会继续执行右边的命令。A. ;B. & C. | D.都不是23. Shell执行命令在同名时优先级别最高的是AA.别名 B. 函数 C.部命令 D.外部命令24. 将一个变量stab的值去除即成为空串的命令是DA. $stab B.$#stab C.$stab D unset stab25. Shell变量不需要预先定义,假设对其进展数值操作,可指定变量的属性为整数,具体命令为DA. declare -a 变量名 B.declare -f 变量名 C.t
7、ypeset -r 变量名 D.typeset -i 变量名26. Shell中可表示引用数组abrr中的所有非空元素的引用是B76A. $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 ,并
8、退出当前脚本程序A.$stra-word B. $stra=word C.$stra: +word D.$stra: ?word 29. 在Shell变量引用操作符可实现模式匹配替换其中B用来的含义是假设pattern 匹配变量stra的头部,那么删除最长匹配局部并返回剩余局部。A. $stra #pattern B.$stra#pattern C.$stra%pattern D.$stra%pattern30. 为了使子进程能继承父进程中定义的变量,就必须使D命令将这些变量送入进程转出区83A. read B.set C.shift D.export31. 使用D形式时,即使表达式中有She
9、ll的特殊字符时,也不必用双引号将其括起来。87A. test 表达式 B. 表达式 C.let 算术表达式 D.算术表达式32. 使用D形式时可以返回算术表达式确实切值A. test 表达式 B. let 算术表达式 C.算术表达式 D.$算术表达式33. gcc可以对编译阶段进展控制,其中B选项规定编译到汇编语言,不进展其他操作。107A. -E B.-S C.-c D.-o34. gcc可以对编译阶段进展控制,其中A选项设定库文件的路径 A.-L path B. -I path C. -l library D.-static35. gcc可以对编译阶段进展控制,其中D选项在可执行文件中包
10、含标准调试信息,供gdb进展调试。A. -Wall B. -Werror C. -w D.-g36. 在Linux底层文件中的大多数操作都是围绕文件描述符来展开的其中A函数是核向进程返回一个文件描述符为以后使用148A.open() B. read() C. write() D.close()37. 最终文件权限取决于DA. mode B. unmask C. mode&unmask D.mode&unmask 非掩码38. Lseek()中第三个参数的值为0表示AA.文件开场位置 B. 文件读写指针当前位置 C. 文件完毕位置 D.都不是39. 文件属性读取函数中,依据文件名且当文件是一个符
11、号时返回是所指向文件的信息的函数是A152A.stat B. lstat C. fstat D.都不是40. 利用文件属性读取函数获取的st_mode进展文件类型测试方确的是DA. 对成员st_mode同文件类型掩码进展与运算 B. 对成员st_mode直接判断C. 利用带成员st_mode参数宏用于文件类型判断定义 D. A和C都可以41. 以下函数中可关闭文件的函数AA.close() B. dup2() C. A和B都可以 D.dup()42. 以下底层文件函数中第一个参数是文件描述符的是C157A.chmod B. lchown C. fchown D.chown43. 硬是B162A
12、. 指向目标文件的指针 B. 指向文件的索引节点C. 可跨越不同文件系统创立 D.可通过symlink()来创立44. 读取readlink和删除unlink操作对象是(C)163A. 都只对硬有效 B. 都对软无效B. 读取只对软有效,删除都两种都有效 D.读取对两种都有效,删除只对软有效。45. 目录文件的读取函数readdir参数和返回值的含义C 167A. 参数和返回值都指向目录文件 B.参数和返回值都指向目录项C.参数指向目录文件,返回值指向目录项 D.返回值指向目录文件,参数指向目录项46. 对磁盘文件的标准I/O操作一般是实现A171A.全缓冲 B.行缓冲 C.不带缓冲 D.都可
13、以47. 当标准输入和标准输出涉及交互作用设备时,它们是BA.全缓冲 B.行缓冲 C.不带缓冲 D.都可以48. 标准错误输出是CA.全缓冲 B.行缓冲 C.不带缓冲 D.都可以49. 在函数fopen() 中文件翻开模式中要求文件必须存在的模式是A172A.r和r+ B.w和w+ C.a和a+ D.ab和wb50. 在函数fopen() 中文件翻开模式中不是可读写的方式翻开文件模式是DA.r+ B.w+ C.a+ D.r51. 在翻开函数中其中是在由指定的流上翻开由路径名指定的文件,其返回值为指向文件流指针,此函数用于将一个指定的文件翻开为一个预定义的标准流CA.open B.fopen C
14、.freopen D.fdopen52. 以下函数中表示从某流中读取一个字符但该函数不带参数,表示从标准输入流中读字符的函数是C174A.gets B.getc C.getchar D.fgec53. 当到达文件尾端或出错时,字符读取函数的返回值都是EOF,为进一步确认文件是否已到文件尾,应当通过B函数来判断。A.ferror B.feof C.cleanerr D.perror54. 在定位函数中,可直接将流的读写指针设置到文件的起始位置同时会将错误指示器errno 清零的函数是rewind 182 无答案A.ferror B.feof C.clearerr 174 D.perror55.
15、下面关于ftell函数成功调用说法不正确的选项是CA. 会去除流完毕标志 B.返回读写指针当前相对文件起始位置的位移量C.返回读写指针当前相对文件完毕位置的位移量 D.会撤销已调用ungetc对流的影响56. 格式化输出可把格式化数据输出到标准输出、指定文件及字符缓冲区。其中函数是将格式化数据输出到指定大小的字符缓冲区。D183A.printf B.fprintf C.sprintf D.snprintf57. 格式化输入可从标准输入、指定文件及字符缓冲区读取格式化数据。其中函数是输出到指定文件。BA.printf B.fprintf C.sprintf D.snprintf58. 关于临时文
16、件不正确的选项是A186A.可通过tmpnam创立 B.也可通过tmpfile创立C.程序完毕时或关闭文件时自动删除 D.调用tmpname 次数有限制59. 以下是进程的异常终止的是D193A. 从main中调用return返回 B.调用exit C.调用_exit D.调用abort60. 不属于非格式化标准I/O的是CA. 字符I/O B.行I/O C.列I/O D.块I/O61. 关于exit()函数不正确的选项是B194A. 先清理后进入核 B.底层系统调用C.有一个整型参数 D.用于正常终止一个进程62. 核使程序执行的方法的是AA. 调用exec函数 B.调用exit/_exit
17、 C.从main返回 D.收到一个系统终止信号63. 关于atexit函数正确的选项是DA. 一个进程可登记超过32个函数 B.函数登记的顺序 和调用顺序一样B. 同一函数可登记屡次,但调用一次D.在显示或隐式调用exit时那么执行这些登记的终止处理程序64. 非初始化数据段由exec赋初值常称为C196A. 正文段 B.数据段 C.bss段 D.堆65. 在存储空间布局中从低地址到高地址依次分布为AA.正文段数据段bss段堆栈 B.栈 堆bss段数据段正文段C.正文段堆栈数据段bss段 D.堆 正文段数据段bss段栈66. PID为0的交换进程是A200A.其他所有进程的祖先进程 B.所有其
18、他用户进程的祖先进程C.其他所有核线程的父进程 D.普通进程67. 调用exec可能有变化的是D204A. 调用前后进程ID B.调用exec前后实际用户IDC.调用exec前后实际组ID D.调用exec前后有效用户ID和有效组ID68当waitpid函数的pid参数设置为A表示等待任一子进程终止。211A.pid=-1 B.pid=0 C.pid0 D.pid-169. fork函数在父进程中的返回值是B206A.0 B.创立的子进程的进程标识号 C.-1 D.170. fork函数在子进程中的返回值是AA.0 B.创立的子进程的进程标识号 C.-1 D.171. 进程可以忽略大局部信号,
19、但以下信号中D不能忽略213A.SIGBORT B.SIGILL C.SIGQUIT D.SIGKILL72. 调用exec函数会将原来设置为要捕获的信号都更改为A214A. 默认 B.忽略 C.另一捕获 D.默认或忽略73. 可用于在不同主机的进程间通信的技术是D225A. 管道 B.共享存 C.消息队列 D.套接字74. 只能在同源进程间通信的技术A224A. 普通管道 B.命名管道 C.消息队列 D.共享存75. 不属于System V IPC通信技术的是AA. 管道 B.消息队列 C.信号量 D.共享存76. 建立从父进程到子进程的管道的方法B225A. 父进程关闭管道的写端,子进程关
20、闭管道读端B.父进程关闭管道的读端,子进程关闭管道的写端C.父子进程都管道的读端 D.父子进程都关闭管道的写端76获取某个环境变量值使用函数AAgetenv Bputenv Csetenv Dunsetenv77文件系统保存在磁盘的BA.引导块 B.超级块 C.i节点块 D.数据块78Linux文件系统的根目录的i节点号为CA. 0 B. 1 C.2 D.379文件描述符的数据类型是BA. char B.int C.double D.float80设置文件偏移量的系统调用是CA. truncateB. syncC . lseekD.create81下面那个不是lseek第三个参数的取值CA.S
21、EEK_SETB.SEEK_CURC.SEEK_NOWD.SEEK_END82可以使用C系统调用获得符号所引用文件名称A.linkB.symlinkC.readlinkD.softlink83获得工作路径名称的系统调用是AA.getcwdB.getpwuidC.getgrgidD.getlogin84通过文件属性中的uid获得文件拥有者名字的系统调用是BA.getcwdB.getpwuidC.getgrgidD.getlogin85通过文件属性中的gid获得文件所属组名字的系统调用是CA.getcwdB.getpwuidC.getgrgidD.getlogin86根据文件路径来改变文件权限使用
22、系统调用是BA.chownB.chmod C.fchmod D.fchown一、填空题1.Linux核与发行版的关系:Linux Kernel 3.5.3是Linux核版,而Ubuntu 12.04.1是Linux的发行版2.Shell是linux系统的一种命令行用户界面,提供了用户与操作系统进展交互的接口,本质上是命令解释器,可为用户提供个性化的使用环境。3.在Shell中测试运算有文件属性测试、字符串测试、数值测试、逻辑运算。4. 专门执行整数算术运算的命令let所指表达式可执行C语言中常见的算术、逻辑、位运算、比拟运算等。 5Vi的三中工作模式:插入模式、命令模式、末行模式。6Gcc生成
23、可执行文件的四个步骤:预处理、编译、汇编、。预处理是对源程序进展头文件加载和宏展开等操作,由cpp完成;汇编一是产生汇编代码,二是产生二进制的目标文件,由gcc使用as;生成的多.o文件和使用到的库文件成为可被操作系统执行的可执行程序,使用ld工具,可使用两类库文件。7库分为 静态库 和共享库。静态库由多个.o文件组成的集合,文件成员没有特殊的存在格式,使用“ar可维护和管理,库文件后缀为“.a;共享库多个.o文件由编译器按照一定特殊的方式生成。多个可执行程序可共享库文件的代码段,但不共享数据。8命令行参数是main。函数的参数yMain函数的参数假设有两个参数那么第一个参数代表命令行参数个数
24、、第二个参数代表指向各命令行参数字符串的指针数组。9Linux 中日期时间的表示方法有:算术类型、构造体类型、字符串类型。10如果一个C程序的入口表示为mainint argc,char *argv,编译该程序后的可执行程序为a.out,那么在命令“./a.out f foo后,main中的参数argv1指向的字符串是“-f。11Linux系统下表示标准输入、标准输出和标准错误输出的文件描述符符号表示分别为STDIN_FILENO、STDOUT_FILENO 、STDERR_FILENO,它们的值分别为0、1、2。12数字635表示的权限使用字母的方式表示为 rwwxr-x、使用符号方式表示为
25、S_IRUSR | S_IWUSR | S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH。13系统调用open的功能是翻开或创立文件。14 使用open翻开文件时有三个标志必须要选择其一,这三个标志是O_RDONLY、O_WRONLY、O_RDWR。15文件偏移量代表下一次读或写的位置。16将文件偏移量市值为当前偏移处之前的4个字节的维护使用lseekfd,4,SEEK_CUR。17设置翻开文件标志O_TRUNC,可以截断文件为0,使用系统调用truncate可以截断文件或者加长文件。18如果umask设置为022,那么创立一个新文件夹数字表示的权限为644、创立一个
26、新目录的权限为755。19如果umask设置为024,那么创立一个新文件夹数字表示的权限为642、创立一个新目录的权限为753。20使用系统调用umask可以设置和得到文件模式的屏蔽字。21创立硬使用系统调用link,创立符号使用系统调用symlink。22获得工作路径名称的系统调用是getcwd。23可以使用stat或fstat或lstat系统调用显示文件属性信息。24chmod,chown,utime都可以修改文件i节点信息,其中chmod的功能是更改文件权限、chown的功能是更改文件所有者和所属组、utime的功能是更改文件时间和修改时间。25假设实现将标准输出重定向到文件描述符为6对
27、应的文件上,那么应使用语句dup2(6,1)。26系统调用Unlink的作用是删除目录项,这里的目录项是指文件名和文件i节点的对应关系。27翻开目录使用DIR *opendir(const char *name)系统调用,关闭目录使用 int closedir(DIR *dir)系统调用,读取目录容使用struct dirent *readdir(DIR *dir)系统调用。28chdir系统调用的功能是改变当前目录。29创立目录使用int mkdir(const char *pathname, mode_t mode)系统调用、删除目录使用int rmdir(const char *path
28、name)系统调用。30.popen函数实现的操作:创立一个管道,fork一个子进程,然后关闭管道的不使用端,在子进程中exexc一个shell以执行一条命令,然后等到命令的终止。31.使用kill发送信号时,发送方进程应具有相应的权限:承受和发送进程的所有者一样,发送进程的所有者是超级用户三、简答题1系统调用、库函数的区别和练习从用户角度观察,系统调用和库函数都以C函数形式出现,提供应用户一种功能实现的接口,需要用户输入指定的参数,调用完毕得到指定的返回值。从实现者角度观察,库函数是在系统调用上层的函数,库函数一般指程序员可以使用的通用函数。系统调用由两局部组成:1核心函数:是实现系统调用功
29、能的代码,作为操作系统的核心驻留在存中,是一种共享代码。运行在核心态。2接口函数:是提供应应用程序的API,以库函数的形式存在于Linux的lib.a中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把系统调用号,入口参数地址传给相应的核心函数,并使用户态下运行的应用程序陷入核心态。4完成如下命令1新建用户tom 和用户组student#useradd tom#passwd tom#groupadd student2新建文件file#touch file3将文件file 改名为test,然后将test拷贝到/home#mv file test#cp test /ho
30、me4将/home/test文件的拥有着修改为tom,将文件所属组该为student#chown tom:student /home/test5静态库和共享库的区别1静态库的代码在编译时就已连接到开发人员开发的应用程序中。2共享库只是在程序开场运行时才载入,在编译时,只是简单地指定需要使用的库函数。3静态库文件以.a结尾,共享库文件以.so结尾。 6Linux文件类型主要有哪七类?常规文件、目录文件、字符设备文件、块设备文件、管道文件、文件、套接字文件7简述文件、i节点、文件名、目录之间的关系每个存在磁盘上的文件都由i节点和数据块两局部组成,i节点和文件一一对应,一个i节点可以对应多个文件名,
31、文件名和i节点的对应关系叫做文件的硬,文件名和i节点的对应关系保存在目录文件中。8什么是文件描述符?1一个非负整数,核以此来标识一个特定进程正在操作的文件。2012代表三个标准的文件描述符,分别为标准输入、标准输出、标准错误输出9使用符号方式表示rwxrwxrwx权限S_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读
32、程序,写出执行结果并解释得到该结果的原因main()int fd1,fd2;fd1=open(“/etc/passwd,O_RDONLY);fd2=open(“/etc/passwd,O_RDWR);printf(“fd1=%d,fd2=%dn,fd1,fd2);close(fd1);close(fd2);结果:fd1=3 fd2=4原因:open返回的文件描述符为最小可用的非负整数,012是三个标准的文件描述符默认已经被占用,所以第一个open的返回值为3,第二个open返回的是4。12答复stat、fstat、latat三个系统调用的区别stat根据路径获得文件元数据信息fstat根据文件
33、描述符获得文件元数据信息前两者如果遇到符号文件那么会一直引用至非符号文件lstat获得符号文件本身的文件元数据信息12dup和dup2的区别和联系联系:dup与dup2都用来将新文件描述符指向原来文件描述符指向的翻开文件描述。区别:dup返回的新文件描述符为最小可用的文件描述符,dup2返回的新文件描述符可以通过第二个参数指定。13硬和符号的区别1命令ln 原文件硬文件不能对目录创立硬ln s 原文件/目录符号文件2是否新增文件:硬不增文件,符号增加文件。3删除原文件/目录硬:对应i节点数-1。符号:符号文件失效。 4删除文件删除硬文件,使对应i节点的数-1。删除符号文件,对原文件/目录无任何
34、影响5是否跨文件系统:硬不可以,符号可以14fork与vfork区别?1fork创立的子进程复制父进程的整个地址空间,vfork不创立这一副本,子进程借用父进程的地址空间,直到其调用exec族函数或终止;2fork创立的子进程和父进程相互独立地运行,而vfork创立子进程后挂起父进程,直到子进程终止或调用exec族函数。使用kill发送信号时,发送方进程应具有相应的权限:承受和发送进程的所有者一样,发送进程的所有者是超级用户。15阅读以下代码,假设execlp调用成功的话,“Done!会打印输出吗?为什么?#includeint main()printf(“Running ps with ex
35、eclpn);execlp(“ps,ps,-af,0);printf(“Done!n);exit(0);不会输出“Done!。原因:执行execlp(“ps,ps,-af,0)调用成功后,当前进程的地址空间被新的程序ps所替代,将执行“ps -af16试写出以下程序段的运行结果,并解释原因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)
36、printf(“This is pthread1.the sentence 1n);x=4;sleep(1);printf(“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
37、);答案:This is pthread1.the sentense 1This is pthread2.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信号:用于通知接收进程有
38、某种事件发生。2管道:连接一个进程的输出至另一个进程的输入的一种方法。3信号量:一个计数器,用来记录对某个资源的使用情况。4共享存:允许多个进程同一块存空间。5消息队列:消息的链表,链表中每个节点包括消息类型和正文两局部。6套接字:在网络上主机间进程进展通信的方式。18PIPE与FIFO的区别与联系PIPE为未命名管道,FIFO为命名管道。联系:PIPE和FIFO都是单向传输,一端为读,另一端为写。区别:PIPE只能在有亲缘关系的进程中使用,如父子进程;FIFO有名字,所以只要知道该名字,无关进程之间也可以使用。19书名产生信号的几种方式?1用户操作。如键盘操作Ctrl-C,最终使得核产生信号
39、SIGINT。2进程执行出错。如浮点数溢出,核也会产生信号。3进程执行某个系统调用。如调用kill向某个进程或进程组发送信号。20说明信号传递的过程。1生成generating。核要更新目标进程的数据构造,表示一个新的信号已经被发送给此进程。此时,进程并没有对信号做出任何响应。2传递delivery。强迫目标进程对信号做出响应。四、编程题1向文件f1中写入“hello world!,然后再将f1中的容读出并显示在屏幕上。注意必要的错误判断#include #include #include int main()int fd;char buf113=hello world!;char buf21
40、2;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)printf(read less than 12n);write(1,buf2,12);close(fd);2向文件f2中写
41、入“aabbccddee,然后将偏移量移到绝对值偏移为4的位置处,读6个字符,并将结果显示在屏幕上#include #include #include int main()int fd;char buf111=aabbccddee;char buf210;int num;fd = open( f2,O_RDWR| 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向文件f3中写入“a