版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1. 在Linux目錄結(jié)構(gòu)中目錄中的文件是普通用戶可以使用的可使用的可執(zhí)行文件的目錄是(B)19 A./sbin B./bin C./usr D./lib2. 在Linux目錄結(jié)構(gòu)中Linux的內(nèi)核及引導(dǎo)程序所需要的文件位于(B)目錄 A/bin B./boot C./root D./proc3. 在Linux目錄結(jié)構(gòu)中用來(lái)存放系統(tǒng)配置文件(D)目錄 A./lib B./dev C./proc D./etc4. Linux三種特殊權(quán)限中僅用于目錄文件的權(quán)限是(C)22 A.SUID B.SGID C.黏滯位 D.都可以5. Linux三種權(quán)限中允許進(jìn)入目錄的權(quán)限(C) 22 A.r-可讀 B.
2、w-可寫 C.x-可執(zhí)行 D.都不是6. 下列腳本文件最先自動(dòng)執(zhí)行的是(A)24A./etc/rc.local B./etc/profile C./.bashrc D./.bash_logout7. 下面通配符可匹配多個(gè)任意字符的通配符是(A)29A.* B. ? C.abcde D.!a-e8. 輸出重定向符號(hào)右邊的文件已經(jīng)存在,不會(huì)覆蓋文件而是追加的定向符是(B)A. B. C. 2 D.&9. 表示用戶家目錄的是(B)A./home (所有用戶家目錄的父目錄,+用戶名才是用戶家目錄) B. C. . D. .10. 可刪除非空目錄及其子目錄的命令是(B)A. touch B.rm -r
3、C.mkdir D.rmdir空目錄11. 是強(qiáng)引用的符號(hào)(A)A. 單引號(hào) B.反引號(hào) C.雙引號(hào) D.中括號(hào)12. 可顯示隱藏文件的ls命令形式選項(xiàng)是(A)A. ls -a B. ls -d C.ls -h D .ls -l13. 可通過(guò)接受標(biāo)準(zhǔn)輸入作為輸出內(nèi)容來(lái)創(chuàng)建簡(jiǎn)單文件的命令是(B)42A. touch B.cat C.vi D. gedit14. 不帶有編輯功能但有翻頁(yè)、按行滾動(dòng)、搜索功能的命令是(B) 43A. cat B.more和less C.head 和 tail D vi15. wc命令可統(tǒng)計(jì)文件的行數(shù)、字?jǐn)?shù)和字節(jié)數(shù)。在下列格式中只顯示文件的字?jǐn)?shù)的是(C) 51A. wc
4、 B. wc -c C. wc -w D wc -l16. 可實(shí)現(xiàn)文件重命名的命令是(B)52A. cp B. mv C. ln D rename17. 在Linux系統(tǒng)中可通過(guò)掛載將光盤、U盤或一個(gè)文件系統(tǒng)連接到主目錄樹(shù)的一個(gè)目錄節(jié)點(diǎn)。期中光盤或光盤鏡像對(duì)應(yīng)的文件系統(tǒng)類型是(C)44A. vfat B. ext3 C.iso9660 D vboxsf18. 下面更改文件命令只能更改符號(hào)連接的目標(biāo)文件的權(quán)限的命令是(C)A. chown B.chgrp C. chmod D.以上都不對(duì)19. chmod命令的權(quán)限模式可使用字符串形式或八進(jìn)制形式,當(dāng)使用八進(jìn)制形式時(shí)模式應(yīng)由三或四位八進(jìn)制構(gòu)成,其
5、中從最高到最低位依次表示為(A)每個(gè)八進(jìn)制的三個(gè)二進(jìn)制位從高到低分別表示為有無(wú)讀、寫、執(zhí)行權(quán)限A.文件所有者 文件所屬組 其他用戶 B. 其他用戶 文件所屬組 文件所有者C.文件所屬組 文件所有者 其他用戶 D.其他用戶 文件所有者 文件所屬組20. chmod命令的權(quán)限模式可使用字符串形式或八進(jìn)制形式,當(dāng)使用八進(jìn)制形式時(shí)模式應(yīng)由三或四位八進(jìn)制構(gòu)成,其中每個(gè)八進(jìn)制的三個(gè)二進(jìn)制位從高到低分別表示為有無(wú) (A)A.讀寫執(zhí)行B.寫讀執(zhí)行 C.執(zhí)行 讀 寫 D.執(zhí)行 寫 讀21. 運(yùn)行時(shí)不會(huì)創(chuàng)建子進(jìn)程的方式是(C)69A. 賦予shell程序文件可執(zhí)行權(quán)限 ,直接運(yùn)行shell 程序(外部命令)B.
6、調(diào)用命令解釋器解釋執(zhí)行shell程序 (Shell函數(shù))C.使用source命令執(zhí)行shell 程序(內(nèi)部命令)D.用( )將多條命令括起來(lái)而形成的復(fù)合命令執(zhí)行22. 對(duì)于使用(C)連接的兩條命令,只有當(dāng)左邊的命令執(zhí)行失?。ㄍ顺鰻顟B(tài)為非0值)才會(huì)繼續(xù)執(zhí)行右邊的命令。A. ;B. & C. | D.都不是23. Shell執(zhí)行命令在同名時(shí)優(yōu)先級(jí)別最高的是(A)A.別名 B. 函數(shù) C.內(nèi)部命令 D.外部命令24. 將一個(gè)變量stab的值清除(即成為空串)的命令是(D)A. $stab B.$#stab C.$stab D unset stab25. Shell變量不需要預(yù)先定義,若對(duì)其進(jìn)行數(shù)值操
7、作,可指定變量的屬性為整數(shù),具體命令為DA. declare -a 變量名 B.declare -f 變量名 C.typeset -r 變量名 D.typeset -i 變量名26. Shell中可表示引用數(shù)組abrr中的所有非空元素的引用是(B)76A. $abrr B.$abrr * C.$#abrr* D.$#abrr27. 在Shell變量引用操作符可實(shí)現(xiàn)字符串替換其中(C)用來(lái)測(cè)試如果變量stra存在且不為空,則返回為word,否則返回為空串78A.$stra:-word B. $stra:=word C.$stra: +word D.$stra: ?word 28. 在Shell變
8、量引用操作符可實(shí)現(xiàn)字符串替換其中(D)用來(lái)測(cè)試,如果變量stra存在,則返回為變量stra的值,否則輸出為word ,并退出當(dāng)前腳本程序A.$stra-word B. $stra=word C.$stra: +word D.$stra: ?word 29. 在Shell變量引用操作符可實(shí)現(xiàn)模式匹配替換其中(B)用來(lái)的含義是若pattern 匹配變量stra的頭部,則刪除最長(zhǎng)匹配部分并返回剩余部分。A. $stra #pattern B.$stra#pattern C.$stra%pattern D.$stra%pattern30. 為了使子進(jìn)程能繼承父進(jìn)程中定義的變量,就必須使(D)命令將這些
9、變量送入進(jìn)程轉(zhuǎn)出區(qū)83A. read B.set C.shift D.export31. 使用(D)形式時(shí),即使表達(dá)式中有Shell的特殊字符時(shí),也不必用雙引號(hào)將其括起來(lái)。87A. test 表達(dá)式 B. 表達(dá)式 C.let 算術(shù)表達(dá)式 D.(算術(shù)表達(dá)式)32. 使用(D)形式時(shí)可以返回算術(shù)表達(dá)式的確切值A(chǔ). test 表達(dá)式 B. let 算術(shù)表達(dá)式 C.(算術(shù)表達(dá)式 ) D.$(算術(shù)表達(dá)式)33. gcc可以對(duì)編譯階段進(jìn)行控制,其中(B)選項(xiàng)規(guī)定編譯到匯編語(yǔ)言,不進(jìn)行其他操作。107A. -E B.-S C.-c D.-o34. gcc可以對(duì)編譯階段進(jìn)行控制,其中(A)選項(xiàng)設(shè)定庫(kù)文件的路徑
10、 A.-L path B. -I path C. -l library D.-static35. gcc可以對(duì)編譯階段進(jìn)行控制,其中(D)選項(xiàng)在可執(zhí)行文件中包含標(biāo)準(zhǔn)調(diào)試信息,供gdb進(jìn)行調(diào)試。A. -Wall B. -Werror C. -w D.-g36. 在Linux底層文件訪問(wèn)中的大多數(shù)操作都是圍繞文件描述符來(lái)展開(kāi)的其中(A)函數(shù)是內(nèi)核向進(jìn)程返回一個(gè)文件描述符為以后使用148A.open() B. read() C. write() D.close()37. 最終文件權(quán)限取決于(D)A. mode B. unmask C. mode&unmask D.mode&unmask 非掩碼38.
11、 Lseek()中第三個(gè)參數(shù)的值為0表示(A)A.文件開(kāi)始位置 B. 文件讀寫指針當(dāng)前位置 C. 文件結(jié)束位置 D.都不是39. 文件屬性讀取函數(shù)中,依據(jù)文件名且當(dāng)文件是一個(gè)符號(hào)鏈接時(shí)返回是鏈接所指向文件的信息的函數(shù)是(A)152A.stat B. lstat C. fstat D.都不是40. 利用文件屬性讀取函數(shù)獲取的st_mode進(jìn)行文件類型測(cè)試方法正確的是DA. 對(duì)成員st_mode同文件類型掩碼進(jìn)行與運(yùn)算 B. 對(duì)成員st_mode直接判斷C. 利用帶成員st_mode參數(shù)宏(用于文件類型判斷)定義 D. A和C都可以41. 下列函數(shù)中可關(guān)閉文件的函數(shù)(A)A.close() B.
12、dup2() C. A和B都可以 D.dup()42. 下列底層文件訪問(wèn)函數(shù)中第一個(gè)參數(shù)是文件描述符的是(C)157A.chmod B. lchown C. fchown D.chown43. 硬鏈接是(B)162A. 指向目標(biāo)文件的指針 B. 指向文件的索引節(jié)點(diǎn)C. 可跨越不同文件系統(tǒng)創(chuàng)建 D.可通過(guò)symlink()來(lái)創(chuàng)建44. 讀取鏈接readlink和刪除鏈接unlink操作對(duì)象是(C)163A. 都只對(duì)硬鏈接有效 B. 都對(duì)軟鏈接無(wú)效B. 讀取只對(duì)軟鏈接有效,刪除都兩種都有效 D.讀取對(duì)兩種都有效,刪除只對(duì)軟鏈接有效。45. 目錄文件的讀取函數(shù)readdir()參數(shù)和返回值的含義()
13、C 167A. 參數(shù)和返回值都指向目錄文件 B.參數(shù)和返回值都指向目錄項(xiàng)C.參數(shù)指向目錄文件,返回值指向目錄項(xiàng) D.返回值指向目錄文件,參數(shù)指向目錄項(xiàng)46. 對(duì)磁盤文件的標(biāo)準(zhǔn)I/O操作一般是實(shí)現(xiàn)(A)171A.全緩沖 B.行緩沖 C.不帶緩沖 D.都可以47. 當(dāng)標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出涉及交互作用設(shè)備時(shí),它們是(B)A.全緩沖 B.行緩沖 C.不帶緩沖 D.都可以48. 標(biāo)準(zhǔn)錯(cuò)誤輸出是(C)A.全緩沖 B.行緩沖 C.不帶緩沖 D.都可以49. 在函數(shù)fopen() 中文件打開(kāi)模式中要求文件必須存在的模式是(A)172A.r和r+ B.w和w+ C.a和a+ D.ab和wb50. 在函數(shù)fopen
14、() 中文件打開(kāi)模式中不是可讀寫的方式打開(kāi)文件模式是(D)A.r+ B.w+ C.a+ D.r51. 在打開(kāi)函數(shù)中其中是在由指定的流上打開(kāi)由路徑名指定的文件,其返回值為指向文件流指針,此函數(shù)用于將一個(gè)指定的文件打開(kāi)為一個(gè)預(yù)定義的標(biāo)準(zhǔn)流(C)A.open B.fopen C.freopen D.fdopen52. 以下函數(shù)中表示從某流中讀取一個(gè)字符但該函數(shù)不帶參數(shù),表示從標(biāo)準(zhǔn)輸入流中讀字符的函數(shù)是(C)174A.gets B.getc C.getchar D.fgec53. 當(dāng)?shù)竭_(dá)文件尾端或出錯(cuò)時(shí),字符讀取函數(shù)的返回值都是EOF,為進(jìn)一步確認(rèn)文件是否已到文件尾,應(yīng)當(dāng)通過(guò)(B)函數(shù)來(lái)判斷。A.fe
15、rror B.feof C.cleanerr D.perror54. 在定位函數(shù)中,可直接將流的讀寫指針設(shè)置到文件的起始位置同時(shí)會(huì)將錯(cuò)誤指示器errno 清零的函數(shù)是()rewind 182 無(wú)答案A.ferror B.feof C.clearerr 174 D.perror55. 下面關(guān)于ftell()函數(shù)成功調(diào)用說(shuō)法不正確的是(C)A. 會(huì)清除流結(jié)束標(biāo)志 B.返回讀寫指針當(dāng)前相對(duì)文件起始位置的位移量C.返回讀寫指針當(dāng)前相對(duì)文件結(jié)束位置的位移量 D.會(huì)撤銷已調(diào)用ungetc()對(duì)流的影響56. 格式化輸出可把格式化數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出、指定文件及字符緩沖區(qū)。其中()函數(shù)是將格式化數(shù)據(jù)輸出到指定
16、大小的字符緩沖區(qū)。(D)183A.printf B.fprintf C.sprintf D.snprintf57. 格式化輸入可從標(biāo)準(zhǔn)輸入、指定文件及字符緩沖區(qū)讀取格式化數(shù)據(jù)。其中()函數(shù)是輸出到指定文件。(B)A.printf B.fprintf C.sprintf D.snprintf58. 關(guān)于臨時(shí)文件不正確的是A186A.可通過(guò)tmpnam()創(chuàng)建 B.也可通過(guò)tmpfile()創(chuàng)建C.程序結(jié)束時(shí)或關(guān)閉文件時(shí)自動(dòng)刪除 D.調(diào)用tmpname 次數(shù)有限制59. 下列是進(jìn)程的異常終止的是(D)193A. 從main中調(diào)用return返回 B.調(diào)用exit C.調(diào)用_exit D.調(diào)用abo
17、rt60. 不屬于非格式化標(biāo)準(zhǔn)I/O的是(C)A. 字符I/O B.行I/O C.列I/O D.塊I/O61. 關(guān)于exit()函數(shù)不正確的是(B)194A. 先清理后進(jìn)入內(nèi)核 B.底層系統(tǒng)調(diào)用C.有一個(gè)整型參數(shù) D.用于正常終止一個(gè)進(jìn)程62. 內(nèi)核使程序執(zhí)行的方法的是(A)A. 調(diào)用exec函數(shù) B.調(diào)用exit/_exit C.從main返回 D.收到一個(gè)系統(tǒng)終止信號(hào)63. 關(guān)于atexit函數(shù)正確的是(D)A. 一個(gè)進(jìn)程可登記超過(guò)32個(gè)函數(shù) B.函數(shù)登記的順序 和調(diào)用順序相同B. 同一函數(shù)可登記多次,但調(diào)用一次D.在顯示或隱式調(diào)用exit時(shí)則執(zhí)行這些登記的終止處理程序64. 非初始化數(shù)據(jù)
18、段由exec賦初值常稱為(C)196A. 正文段 B.數(shù)據(jù)段 C.bss段 D.堆65. 在存儲(chǔ)空間布局中從低地址到高地址依次分布為AA.正文段數(shù)據(jù)段bss段堆棧 B.棧 堆bss段數(shù)據(jù)段正文段C.正文段堆棧數(shù)據(jù)段bss段 D.堆 正文段數(shù)據(jù)段bss段棧66. PID為0的交換進(jìn)程是(A)200A.其他所有進(jìn)程的祖先進(jìn)程 B.所有其他用戶進(jìn)程的祖先進(jìn)程C.其他所有內(nèi)核線程的父進(jìn)程 D.普通進(jìn)程67. 調(diào)用exec可能有變化的是(D)204A. 調(diào)用前后進(jìn)程ID B.調(diào)用exec前后實(shí)際用戶IDC.調(diào)用exec前后實(shí)際組ID D.調(diào)用exec前后有效用戶ID和有效組ID68當(dāng)waitpid函數(shù)的
19、pid參數(shù)設(shè)置為(A)表示等待任一子進(jìn)程終止。211A.pid=-1 B.pid=0 C.pid0 D.pid-169. fork函數(shù)在父進(jìn)程中的返回值是(B)206A.0 B.創(chuàng)建的子進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào) C.-1 D.170. fork函數(shù)在子進(jìn)程中的返回值是(A)A.0 B.創(chuàng)建的子進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào) C.-1 D.171. 進(jìn)程可以忽略大部分信號(hào),但下列信號(hào)中(D)不能忽略213A.SIGBORT B.SIGILL C.SIGQUIT D.SIGKILL72. 調(diào)用exec函數(shù)會(huì)將原來(lái)設(shè)置為要捕獲的信號(hào)都更改為(A)214A. 默認(rèn) B.忽略 C.另一捕獲 D.默認(rèn)或忽略73. 可用于在不同
20、主機(jī)的進(jìn)程間通信的技術(shù)是(D)225A. 管道 B.共享內(nèi)存 C.消息隊(duì)列 D.套接字74. 只能在同源進(jìn)程間通信的技術(shù)(A)224A. 普通管道 B.命名管道 C.消息隊(duì)列 D.共享內(nèi)存75. 不屬于System V IPC通信技術(shù)的是(A)A. 管道 B.消息隊(duì)列 C.信號(hào)量 D.共享內(nèi)存76. 建立從父進(jìn)程到子進(jìn)程的管道的方法(B)225A. 父進(jìn)程關(guān)閉管道的寫端,子進(jìn)程關(guān)閉管道讀端B.父進(jìn)程關(guān)閉管道的讀端,子進(jìn)程關(guān)閉管道的寫端C.父子進(jìn)程都管道的讀端 D.父子進(jìn)程都關(guān)閉管道的寫端76獲取某個(gè)環(huán)境變量值使用函數(shù)AAgetenv Bputenv Csetenv Dunsetenv77文件系
21、統(tǒng)保存在磁盤的BA.引導(dǎo)塊 B.超級(jí)塊 C.i節(jié)點(diǎn)塊 D.數(shù)據(jù)塊78Linux文件系統(tǒng)的根目錄的i節(jié)點(diǎn)號(hào)為CA. 0 B. 1 C.2 D.379文件描述符的數(shù)據(jù)類型是BA. char B.int C.double D.float80設(shè)置文件偏移量的系統(tǒng)調(diào)用是CA. truncateB. syncC . lseekD.create81下面那個(gè)不是lseek第三個(gè)參數(shù)的取值CA.SEEK_SETB.SEEK_CURC.SEEK_NOWD.SEEK_END82可以使用(C)系統(tǒng)調(diào)用獲得符號(hào)鏈接所引用文件名稱A.linkB.symlinkC.readlinkD.softlink83獲得工作路徑名稱的
22、系統(tǒng)調(diào)用是AA.getcwdB.getpwuidC.getgrgidD.getlogin84通過(guò)文件屬性中的uid獲得文件擁有者名字的系統(tǒng)調(diào)用是BA.getcwdB.getpwuidC.getgrgidD.getlogin85通過(guò)文件屬性中的gid獲得文件所屬組名字的系統(tǒng)調(diào)用是CA.getcwdB.getpwuidC.getgrgidD.getlogin86根據(jù)文件路徑來(lái)改變文件權(quán)限使用系統(tǒng)調(diào)用是BA.chownB.chmod C.fchmod D.fchown一、填空題1.Linux內(nèi)核與發(fā)行版的關(guān)系:Linux Kernel 3.5.3是Linux內(nèi)核版,而Ubuntu 12.04.1是L
23、inux的發(fā)行版2.Shell是linux系統(tǒng)的一種命令行用戶界面,提供了用戶與操作系統(tǒng)進(jìn)行交互的接口,本質(zhì)上是命令解釋器,可為用戶提供個(gè)性化的使用環(huán)境。3.在Shell中測(cè)試運(yùn)算有文件屬性測(cè)試、字符串測(cè)試、數(shù)值測(cè)試、邏輯運(yùn)算。4. 專門執(zhí)行整數(shù)算術(shù)運(yùn)算的命令let所指表達(dá)式可執(zhí)行C語(yǔ)言中常見(jiàn)的算術(shù)、邏輯、位運(yùn)算、比較運(yùn)算等。 5Vi的三中工作模式:插入模式、命令模式、末行模式。6Gcc生成可執(zhí)行文件的四個(gè)步驟:預(yù)處理、編譯、匯編、鏈接。預(yù)處理是對(duì)源程序進(jìn)行頭文件加載和宏展開(kāi)等操作,由cpp完成;匯編一是產(chǎn)生匯編代碼,二是產(chǎn)生二進(jìn)制的目標(biāo)文件,由gcc使用as;生成的多.o文件和使用到的庫(kù)文件
24、鏈接成為可被操作系統(tǒng)執(zhí)行的可執(zhí)行程序,使用ld工具,可使用兩類庫(kù)文件。7庫(kù)分為 靜態(tài)庫(kù) 和共享庫(kù) 。靜態(tài)庫(kù)由多個(gè).o文件組成的集合,文件成員沒(méi)有特殊的存在格式,使用“ar”可維護(hù)和管理,庫(kù)文件后綴為“.a”;共享庫(kù)多個(gè).o文件由編譯器按照一定特殊的方式生成。多個(gè)可執(zhí)行程序可共享庫(kù)文件的代碼段,但不共享數(shù)據(jù)。8命令行參數(shù)是main。函數(shù)的參數(shù)yMain函數(shù)的參數(shù)若有兩個(gè)參數(shù)則第一個(gè)參數(shù)代表命令行參數(shù)個(gè)數(shù)、第二個(gè)參數(shù)代表指向各命令行參數(shù)字符串的指針數(shù)組。9Linux 中日期時(shí)間的表示方法有:算術(shù)類型、結(jié)構(gòu)體類型、字符串類型。10如果一個(gè)C程序的入口表示為main(int argc,char *ar
25、gv),編譯該程序后的可執(zhí)行程序?yàn)閍.out,那么在命令“./a.out f foo”后,main中的參數(shù)argv1指向的字符串是(“-f”)。11Linux系統(tǒng)下表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出的文件描述符(符號(hào)表示)分別為(STDIN_FILENO、STDOUT_FILENO 、STDERR_FILENO),它們的值分別為0、1、2。12數(shù)字635表示的權(quán)限使用字母的方式表示為 (rwwxr-x)、使用符號(hào)方式表示為(S_IRUSR | S_IWUSR | S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH)。13系統(tǒng)調(diào)用open的功能是打開(kāi)或創(chuàng)建文件。14 使
26、用open打開(kāi)文件時(shí)有三個(gè)標(biāo)志必須要選擇其一,這三個(gè)標(biāo)志是O_RDONLY、O_WRONLY、O_RDWR。15文件偏移量代表下一次讀或?qū)懙奈恢谩?6將文件偏移量市值為當(dāng)前偏移處之前的4個(gè)字節(jié)的維護(hù)使用lseek(fd,(4),(SEEK_CUR)。17設(shè)置打開(kāi)文件標(biāo)志(O_TRUNC),可以截?cái)辔募?,使用系統(tǒng)調(diào)用(truncate)可以截?cái)辔募蛘呒娱L(zhǎng)文件。18如果umask設(shè)置為022,則創(chuàng)建一個(gè)新文件夾(數(shù)字表示)的權(quán)限為(644)、創(chuàng)建一個(gè)新目錄的權(quán)限為(755)。19如果umask設(shè)置為024,則創(chuàng)建一個(gè)新文件夾(數(shù)字表示)的權(quán)限為(642)、創(chuàng)建一個(gè)新目錄的權(quán)限為(753)。2
27、0使用系統(tǒng)調(diào)用(umask)可以設(shè)置和得到文件模式的屏蔽字。21創(chuàng)建硬鏈接使用系統(tǒng)調(diào)用(link),創(chuàng)建符號(hào)鏈接使用系統(tǒng)調(diào)用(symlink)。22獲得工作路徑名稱的系統(tǒng)調(diào)用是(getcwd)。23可以使用(stat或fstat或lstat)系統(tǒng)調(diào)用顯示文件屬性信息。24chmod,chown,utime都可以修改文件i節(jié)點(diǎn)信息,其中chmod的功能是(更改文件權(quán)限)、chown的功能是(更改文件所有者和所屬組)、utime的功能是(更改文件訪問(wèn)時(shí)間和修改時(shí)間)。25若實(shí)現(xiàn)將標(biāo)準(zhǔn)輸出重定向到文件描述符為6對(duì)應(yīng)的文件上,則應(yīng)使用語(yǔ)句(dup2(6,1))。26系統(tǒng)調(diào)用(Unlink)的作用是刪除
28、目錄項(xiàng),這里的目錄項(xiàng)是指(文件名和文件i節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系)。27打開(kāi)目錄使用(DIR *opendir(const char *name))系統(tǒng)調(diào)用,關(guān)閉目錄使用( int closedir(DIR *dir))系統(tǒng)調(diào)用,讀取目錄內(nèi)容使用(struct dirent *readdir(DIR *dir))系統(tǒng)調(diào)用。28chdir系統(tǒng)調(diào)用的功能是(改變當(dāng)前目錄)。29創(chuàng)建目錄使用(int mkdir(const char *pathname, mode_t mode))系統(tǒng)調(diào)用、刪除目錄使用(int rmdir(const char *pathname))系統(tǒng)調(diào)用。30.popen函數(shù)實(shí)現(xiàn)的操作:
29、創(chuàng)建一個(gè)管道,fork一個(gè)子進(jìn)程,然后關(guān)閉管道的不使用端,在子進(jìn)程中exexc一個(gè)shell以執(zhí)行一條命令,然后等到命令的終止。31.使用kill發(fā)送信號(hào)時(shí),發(fā)送方進(jìn)程應(yīng)具有相應(yīng)的權(quán)限:接受和發(fā)送進(jìn)程的所有者相同,發(fā)送進(jìn)程的所有者是超級(jí)用戶三、簡(jiǎn)答題1系統(tǒng)調(diào)用、庫(kù)函數(shù)的區(qū)別和練習(xí)從用戶角度觀察,系統(tǒng)調(diào)用和庫(kù)函數(shù)都以C函數(shù)形式出現(xiàn),提供給用戶一種功能實(shí)現(xiàn)的接口,需要用戶輸入指定的參數(shù),調(diào)用結(jié)束得到指定的返回值。從實(shí)現(xiàn)者角度觀察,庫(kù)函數(shù)是在系統(tǒng)調(diào)用上層的函數(shù),庫(kù)函數(shù)一般指程序員可以使用的通用函數(shù)。系統(tǒng)調(diào)用由兩部分組成:(1)核心函數(shù):是實(shí)現(xiàn)系統(tǒng)調(diào)用功能的代碼,作為操作系統(tǒng)的核心駐留在內(nèi)存中,是一種
30、共享代碼。運(yùn)行在核心態(tài)。(2)接口函數(shù):是提供給應(yīng)用程序的API,以庫(kù)函數(shù)的形式存在于Linux的lib.a中,該庫(kù)中存放了所有系統(tǒng)調(diào)用的接口函數(shù)的目標(biāo)代碼,用匯編語(yǔ)言書寫。其主要功能是把系統(tǒng)調(diào)用號(hào),入口參數(shù)地址傳給相應(yīng)的核心函數(shù),并使用戶態(tài)下運(yùn)行的應(yīng)用程序陷入核心態(tài)。4完成如下命令(1)新建用戶tom 和用戶組student#useradd tom#passwd tom#groupadd student(2)新建文件 file(3)將文件file 改名為test,然后將test拷貝到/home#mv #cp test /home(4)將/home/test文件的擁有著修改為tom,將文件所屬
31、組該為student#chown tom:student /home/test5靜態(tài)庫(kù)和共享庫(kù)的區(qū)別(1)靜態(tài)庫(kù)的代碼在編譯時(shí)就已連接到開(kāi)發(fā)人員開(kāi)發(fā)的應(yīng)用程序中。(2)共享庫(kù)只是在程序開(kāi)始運(yùn)行時(shí)才載入,在編譯時(shí),只是簡(jiǎn)單地指定需要使用的庫(kù)函數(shù)。(3)靜態(tài)庫(kù)文件以.a結(jié)尾,共享庫(kù)文件以.so結(jié)尾。 6Linux文件類型主要有哪七類?常規(guī)文件、目錄文件、字符設(shè)備文件、塊設(shè)備文件、管道文件、鏈接文件、套接字文件7簡(jiǎn)述文件、i節(jié)點(diǎn)、文件名、目錄之間的關(guān)系每個(gè)存在磁盤上的文件都由i節(jié)點(diǎn)和數(shù)據(jù)塊兩部分組成,i節(jié)點(diǎn)和文件一一對(duì)應(yīng),一個(gè)i節(jié)點(diǎn)可以對(duì)應(yīng)多個(gè)文件名,文件名和i節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系叫做文件的硬鏈接,文件名
32、和i節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系保存在目錄文件中。8什么是文件描述符?(1)一個(gè)非負(fù)整數(shù),內(nèi)核以此來(lái)標(biāo)識(shí)一個(gè)特定進(jìn)程正在操作的文件。(2)012代表三個(gè)標(biāo)準(zhǔn)的文件描述符,分別為標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤輸出9使用符號(hào)方式表示rwxrwxrwx權(quán)限S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH| S_IWOTH|S_IXOTH10寫出open一下6種打開(kāi)標(biāo)志:只讀、只寫、讀寫、追加、文件不存在創(chuàng)建、截?cái)酁?O_RDONLY O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC 11讀程序,寫出執(zhí)行結(jié)果并解釋得到該結(jié)果
33、的原因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);結(jié)果:fd1=3 fd2=4原因:open返回的文件描述符為最小可用的非負(fù)整數(shù),012是三個(gè)標(biāo)準(zhǔn)的文件描述符默認(rèn)已經(jīng)被占用,所以第一個(gè)open的返回值為3,第二個(gè)open返回的是4。12回答stat、fstat、latat三個(gè)系統(tǒng)調(diào)用的區(qū)別stat根據(jù)路徑獲得文件元數(shù)據(jù)信息fstat根據(jù)文件描述符獲得文件元數(shù)據(jù)信息前兩
34、者如果遇到符號(hào)鏈接文件則會(huì)一直引用至非符號(hào)鏈接文件lstat獲得符號(hào)鏈接文件本身的文件元數(shù)據(jù)信息12dup和dup2的區(qū)別和聯(lián)系聯(lián)系:dup與dup2都用來(lái)將新文件描述符指向原來(lái)文件描述符指向的打開(kāi)文件描述。區(qū)別:dup返回的新文件描述符為最小可用的文件描述符,dup2返回的新文件描述符可以通過(guò)第二個(gè)參數(shù)指定。13硬鏈接和符號(hào)鏈接的區(qū)別(1)命令ln 原文件硬鏈接文件(不能對(duì)目錄創(chuàng)建硬鏈接)ln s 原文件/目錄符號(hào)鏈接文件(2)是否新增文件:硬鏈接不增文件,符號(hào)鏈接增加文件。(3)刪除原文件/目錄硬鏈接:對(duì)應(yīng)i節(jié)點(diǎn)鏈接數(shù)-1。符號(hào)鏈接:符號(hào)鏈接文件失效。 (4)刪除鏈接文件刪除硬鏈接文件,使
35、對(duì)應(yīng)i節(jié)點(diǎn)的鏈接數(shù)-1。刪除符號(hào)鏈接文件,對(duì)原文件/目錄無(wú)任何影響(5)是否跨文件系統(tǒng):硬鏈接不可以,符號(hào)鏈接可以14fork與vfork區(qū)別?(1)fork創(chuàng)建的子進(jìn)程復(fù)制父進(jìn)程的整個(gè)地址空間,vfork不創(chuàng)建這一副本,子進(jìn)程借用父進(jìn)程的地址空間,直到其調(diào)用exec族函數(shù)或終止;(2)fork創(chuàng)建的子進(jìn)程和父進(jìn)程相互獨(dú)立地運(yùn)行,而vfork創(chuàng)建子進(jìn)程后掛起父進(jìn)程,直到子進(jìn)程終止或調(diào)用exec族函數(shù)。使用kill發(fā)送信號(hào)時(shí),發(fā)送方進(jìn)程應(yīng)具有相應(yīng)的權(quán)限:接受和發(fā)送進(jìn)程的所有者相同,發(fā)送進(jìn)程的所有者是超級(jí)用戶。15閱讀以下代碼,若execlp調(diào)用成功的話,“Done!”會(huì)打印輸出嗎?為什么?#in
36、cludeint main()printf(“Running ps with execlpn”);execlp(“ps”,”ps”,”-af”,0);printf(“Done!n”);exit(0);不會(huì)輸出“Done!”。原因:執(zhí)行execlp(“ps”,”ps”,”-af”,0)調(diào)用成功后,當(dāng)前進(jìn)程的地址空間被新的程序ps所替代,將執(zhí)行“ps -af”16試寫出下列程序段的運(yùn)行結(jié)果,并解釋原因int x=0,int y=0;void thread1(void)printf(“This is pthread1.the sentence 1n”);y=7;sleep(1);printf(“Th
37、is is pthread1.the sentence 2n”);x=x+y;void thread2(void)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_jo
38、in(id1,NULL);pthread_ join(id2,NULL);printf(“x=%d,y=%dn”,x,y);答案: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先運(yùn)行,線程2后運(yùn)行。線程1執(zhí)行sleep(1);后阻塞,線程2繼續(xù)執(zhí)行,線程2執(zhí)行到sleep(1);時(shí)線程2阻塞,線程1阻塞結(jié)束繼續(xù)執(zhí)行,線程1執(zhí)行結(jié)束后線程繼續(xù)執(zhí)行到結(jié)束。(2)線
39、程1和線程2共享進(jìn)程的數(shù)據(jù)段,因此共享變量x,y。17進(jìn)程間通信的六種方式是什么?簡(jiǎn)述他們的通信原理?(1)信號(hào):用于通知接收進(jìn)程有某種事件發(fā)生。(2)管道:連接一個(gè)進(jìn)程的輸出至另一個(gè)進(jìn)程的輸入的一種方法。(3)信號(hào)量:一個(gè)計(jì)數(shù)器,用來(lái)記錄對(duì)某個(gè)資源的使用情況。(4)共享內(nèi)存:允許多個(gè)進(jìn)程訪問(wèn)同一塊內(nèi)存空間。(5)消息隊(duì)列:消息的鏈表,鏈表中每個(gè)節(jié)點(diǎn)包括消息類型和正文兩部分。(6)套接字:在網(wǎng)絡(luò)上主機(jī)間進(jìn)程進(jìn)行通信的方式。18PIPE與FIFO的區(qū)別與聯(lián)系PIPE為未命名管道,F(xiàn)IFO為命名管道。聯(lián)系:PIPE和FIFO都是單向傳輸,一端為讀,另一端為寫。區(qū)別:PIPE只能在有親緣關(guān)系的進(jìn)程中
40、使用,如父子進(jìn)程;FIFO有名字,所以只要知道該名字,無(wú)關(guān)進(jìn)程之間也可以使用。19書名產(chǎn)生信號(hào)的幾種方式?(1)用戶操作。如鍵盤操作Ctrl-C,最終使得內(nèi)核產(chǎn)生信號(hào)SIGINT。(2)進(jìn)程執(zhí)行出錯(cuò)。如浮點(diǎn)數(shù)溢出,內(nèi)核也會(huì)產(chǎn)生信號(hào)。(3)進(jìn)程執(zhí)行某個(gè)系統(tǒng)調(diào)用。如調(diào)用kill向某個(gè)進(jìn)程或進(jìn)程組發(fā)送信號(hào)。20說(shuō)明信號(hào)傳遞的過(guò)程。(1)生成(generating)。內(nèi)核要更新目標(biāo)進(jìn)程的數(shù)據(jù)結(jié)構(gòu),表示一個(gè)新的信號(hào)已經(jīng)被發(fā)送給此進(jìn)程。此時(shí),進(jìn)程并沒(méi)有對(duì)信號(hào)做出任何響應(yīng)。(2)傳遞(delivery)。強(qiáng)迫目標(biāo)進(jìn)程對(duì)信號(hào)做出響應(yīng)。四、編程題1向文件f1中寫入“hello world!”,然后再將f1中的內(nèi)
41、容讀出并顯示在屏幕上。(注意必要的錯(cuò)誤判斷)#include #include #include int main()int fd;char buf113=hello 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,SEE
42、K_SET);num=read(fd,buf2,12);if(num!=12)printf(read less than 12n);write(1,buf2,12);close(fd);2向文件f2中寫入“aabbccddee”,然后將偏移量移到絕對(duì)值偏移為4的位置處,讀6個(gè)字符,并將結(jié)果顯示在屏幕上#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) perro
43、r(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中寫入“aabbccddeeffgghh”,然后將文件截短后的文件內(nèi)容讀出并顯示在屏幕上#include #include #include int main
44、()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);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)pr
45、intf(read less than 8n);write(1,buf2,8);close(fd);4實(shí)現(xiàn)“cat文件名”顯示文件內(nèi)容#include main(int argc,char *argv) int fd; int num; char buf10; if(argc!=2) printf(miss n); 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實(shí)現(xiàn)“cp 原文件
46、 目標(biāo)文件”#include #include main(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)
47、;6編寫程序pro3.c,將字符串“hello world”通過(guò)輸出重定向方式寫入文件f1中#include #include #include #include #include main()int fd;if(fd=open(f1,O_WRONLY|O_CREAT,0644)=-1)perror(open fail);if(dup2(fd,1)=-1)perror(Redirect failed);printf(Hello worldn);close(fd);7使用fork創(chuàng)建進(jìn)程,在子進(jìn)程中打印“I am the child”和子進(jìn)程pid,在父進(jìn)程中打印“I am the father
48、”和父進(jìn)程pid#include #include #include int main() pid_t pid; pid = fork(); if(pid 0) perror(fork); exit(1); else if(pid = 0) printf(I am the childn); else printf(I am the fathern); exit(0);8創(chuàng)建子進(jìn)程,在子進(jìn)程中執(zhí)行“ps -A”命令,父進(jìn)程等待子進(jìn)程結(jié)束后打印“child over”及所處理的子進(jìn)程進(jìn)程號(hào)#include #include main()pid_t pid,cpid;int i;char* args
49、64; args0=”ps”; args1=”-A”; args2=NULL; pid=fork();if(pid0)perror(“fork”);exit(1);else if(pid=0)execvp(args0,args);exit(0);elsecpid=wait(NULL);printf(“child over! cpid=%dn”,cpid);9編寫程序處理SIGINT信號(hào),當(dāng)程序接收到SIGINT信號(hào)后輸出“SIGINT is caught”#include #include void signal_handler(int signum) switch(signum) case SIGINT: printf(SIGINT is caught!n); break; int main() signal
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司主要負(fù)責(zé)人安全培訓(xùn)試題附參考答案【培優(yōu)】
- 班組三級(jí)安全培訓(xùn)試題及參考答案【黃金題型】
- 管理人員安全培訓(xùn)試題及參考答案(模擬題)
- 纖維素醚市場(chǎng)現(xiàn)狀及發(fā)展趨勢(shì)
- 湘藝版高中音樂(lè)鑒賞教案-《亞洲民族民間音樂(lè)(2)》
- 項(xiàng)目部安全管理人員安全培訓(xùn)試題及完整答案(有一套)
- 項(xiàng)目安全培訓(xùn)試題及完整答案【必刷】
- 黑龍江省哈爾濱市第六十九中學(xué)2024-2025學(xué)年九年級(jí)上學(xué)期期中學(xué)情反饋化學(xué)試題
- (11篇)關(guān)于學(xué)校未來(lái)三年發(fā)展規(guī)劃方案匯編
- 市場(chǎng)部薪酬體系及考核制度
- 不寧腿綜合征完整版本課件
- 冀教版六年級(jí)數(shù)學(xué)上冊(cè)《求百分率》說(shuō)課稿
- 壓力性尿失禁的護(hù)理課件
- 第二章-化學(xué)制漿設(shè)備-制漿造紙?jiān)O(shè)備課件
- 聚合物分子運(yùn)動(dòng)的特點(diǎn)
- 2023年05月北京師范大學(xué)基礎(chǔ)教育發(fā)展管理部招聘筆試題庫(kù)含答案詳解
- 外刊閱讀-英語(yǔ)資料
- 胎心監(jiān)護(hù)(婦產(chǎn)科)-課件
- 2023版押品考試題庫(kù)必考點(diǎn)含答案
- book3-unit5公開(kāi)課一等獎(jiǎng)市賽課一等獎(jiǎng)?wù)n件
- 2000-2023年全國(guó)中學(xué)生生物學(xué)聯(lián)賽試題和答案解析(生物化學(xué)部分)
評(píng)論
0/150
提交評(píng)論