




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1. 在Linux目錄結(jié)構(gòu)中目錄中的文件是普通用戶可以使用的可使用的可執(zhí)行文件的目錄是(B)19A./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)中用來存放系統(tǒng)配置文件(D)目錄A./lib B./dev C./proc D./etc4. Linux三種特殊權(quán)限中僅用于目錄文件的權(quán)限是(C)22A. SUID B.SGID C.黏滯位 D.都可以5. Linux三種權(quán)限中允許進(jìn)入目錄的權(quán)限(C) 22A. r-可讀 B.w
2、-可寫 C.x-可執(zhí)行 D.都不是6. 下列腳本文件最先自動執(zhí)行的是(A)24A./etc/rc.local B./etc/profile C./.bashrc D./.bash_logout7. 下面通配符可匹配多個任意字符的通配符是(A)29A.* B. ? C.abcde D.!a-e8. 輸出重定向符號右邊的文件已經(jīng)存在,不會覆蓋文件而是追加的定向符是(B)A. B. C. 2 D.&9. 表示用戶家目錄的是(B)A./home (所有用戶家目錄的父目錄,+用戶名才是用戶家目錄) B. C. . D. .10. 可刪除非空目錄及其子目錄的命令是(B)A. touch B.rm -r C
3、.mkdir D.rmdir空目錄11. 是強(qiáng)引用的符號(A)A. 單引號 B.反引號 C.雙引號 D.中括號12. 可顯示隱藏文件的ls命令形式選項是(A)A. ls -a B. ls -d C.ls -h D .ls -l13. 可通過接受標(biāo)準(zhǔn)輸入作為輸出內(nèi)容來創(chuàng)建簡單文件的命令是(B)42A. touch B.cat C.vi D. gedit 14. 不帶有編輯功能但有翻頁、按行滾動、搜索功能的命令是(B) 43A. cat B.more和less C.head 和 tail D vi 15. wc命令可統(tǒng)計文件的行數(shù)、字?jǐn)?shù)和字節(jié)數(shù)。在下列格式中只顯示文件的字?jǐn)?shù)的是(C) 51A. w
4、c B. wc -c C. wc -w D wc -l16. 可實現(xiàn)文件重命名的命令是(B)52A. cp B. mv C. ln D rename 17. 在Linux系統(tǒng)中可通過掛載將光盤、U盤或一個文件系統(tǒng)連接到主目錄樹的一個目錄節(jié)點。期中光盤或光盤鏡像對應(yīng)的文件系統(tǒng)類型是(C)44A. vfat B. ext3 C.iso9660 D vboxsf18. 下面更改文件命令只能更改符號連接的目標(biāo)文件的權(quán)限的命令是(C)A. chown B.chgrp C. chmod D.以上都不對19. chmod命令的權(quán)限模式可使用字符串形式或八進(jìn)制形式,當(dāng)使用八進(jìn)制形式時模式應(yīng)由三或四位八進(jìn)制構(gòu)成
5、,其中從最高到最低位依次表示為(A)每個八進(jìn)制的三個二進(jìn)制位從高到低分別表示為有無讀、寫、執(zhí)行權(quán)限A.文件所有者 文件所屬組 其他用戶 B. 其他用戶 文件所屬組 文件所有者C.文件所屬組 文件所有者 其他用戶 D.其他用戶 文件所有者 文件所屬組20. chmod命令的權(quán)限模式可使用字符串形式或八進(jìn)制形式,當(dāng)使用八進(jìn)制形式時模式應(yīng)由三或四位八進(jìn)制構(gòu)成,其中每個八進(jìn)制的三個二進(jìn)制位從高到低分別表示為有無 (A)A.讀寫執(zhí)行B.寫讀執(zhí)行 C.執(zhí)行 讀 寫 D.執(zhí)行 寫 讀21. 運行時不會創(chuàng)建子進(jìn)程的方式是(C)69A. 賦予shell程序文件可執(zhí)行權(quán)限 ,直接運行shell 程序(外部命令)
6、B. 調(diào)用命令解釋器解釋執(zhí)行shell程序 (Shell函數(shù)) C.使用source命令執(zhí)行shell 程序(內(nèi)部命令)D.用( )將多條命令括起來而形成的復(fù)合命令執(zhí)行22. 對于使用(C)連接的兩條命令,只有當(dāng)左邊的命令執(zhí)行失敗(退出狀態(tài)為非0值)才會繼續(xù)執(zhí)行右邊的命令。A. ;B. & C. | D.都不是 23. Shell執(zhí)行命令在同名時優(yōu)先級別最高的是(A)A.別名 B. 函數(shù) C.內(nèi)部命令 D.外部命令 24. 將一個變量stab的值清除(即成為空串)的命令是(D)A. $stab B.$#stab C.$stab D unset stab 25. Shell變量不需要預(yù)先定義,若
7、對其進(jìn)行數(shù)值操作,可指定變量的屬性為整數(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變量引用操作符可實現(xiàn)字符串替換其中(C)用來測試如果變量stra存在且不為空,則返回為word,否則返回為空串78A.$stra:-word B. $stra:=word C.$stra: +word D.$stra: ?word 28.
8、在Shell變量引用操作符可實現(xiàn)字符串替換其中(D)用來測試,如果變量stra存在,則返回為變量stra的值,否則輸出為word ,并退出當(dāng)前腳本程序A.$stra-word B. $stra=word C.$stra: +word D.$stra: ?word 29. 在Shell變量引用操作符可實現(xiàn)模式匹配替換其中(B)用來的含義是若pattern 匹配變量stra的頭部,則刪除最長匹配部分并返回剩余部分。A. $stra #pattern B.$stra#pattern C.$stra%pattern D.$stra%pattern30. 為了使子進(jìn)程能繼承父進(jìn)程中定義的變量,就必須使(
9、D)命令將這些變量送入進(jìn)程轉(zhuǎn)出區(qū)83A. read B.set C.shift D.export31. 使用(D)形式時,即使表達(dá)式中有Shell的特殊字符時,也不必用雙引號將其括起來。87A. test 表達(dá)式 B. 表達(dá)式 C.let 算術(shù)表達(dá)式 D.(算術(shù)表達(dá)式)32. 使用(D)形式時可以返回算術(shù)表達(dá)式的確切值 A. test 表達(dá)式 B. let 算術(shù)表達(dá)式 C.(算術(shù)表達(dá)式 ) D.$(算術(shù)表達(dá)式)33. gcc可以對編譯階段進(jìn)行控制,其中(B)選項規(guī)定編譯到匯編語言,不進(jìn)行其他操作。107A. -E B.-S C.-c D.-o34. gcc可以對編譯階段進(jìn)行控制,其中(A)選項
10、設(shè)定庫文件的路徑 A.-L path B. -I path C. -l library D.-static 35. gcc可以對編譯階段進(jìn)行控制,其中(D)選項在可執(zhí)行文件中包含標(biāo)準(zhǔn)調(diào)試信息,供gdb進(jìn)行調(diào)試。A. -Wall B. -Werror C. -w D.-g 36. 在Linux底層文件訪問中的大多數(shù)操作都是圍繞文件描述符來展開的其中(A)函數(shù)是內(nèi)核向進(jìn)程返回一個文件描述符為以后使用148A.open() B. read() C. write() D.close() 37. 最終文件權(quán)限取決于(D)A. mode B. unmask C. mode&unmask D.mode&un
11、mask 非掩碼38. Lseek()中第三個參數(shù)的值為0表示(A)A.文件開始位置 B. 文件讀寫指針當(dāng)前位置 C. 文件結(jié)束位置 D.都不是39. 文件屬性讀取函數(shù)中,依據(jù)文件名且當(dāng)文件是一個符號鏈接時返回是鏈接所指向文件的信息的函數(shù)是(A)152A.stat B. lstat C. fstat D.都不是 40. 利用文件屬性讀取函數(shù)獲取的st_mode進(jìn)行文件類型測試方法正確的是DA. 對成員st_mode同文件類型掩碼進(jìn)行與運算 B. 對成員st_mode直接判斷 C. 利用帶成員st_mode參數(shù)宏(用于文件類型判斷)定義 D. A和C都可以41. 下列函數(shù)中可關(guān)閉文件的函數(shù)(A)
12、A.close() B. dup2() C. A和B都可以 D.dup() 42. 下列底層文件訪問函數(shù)中第一個參數(shù)是文件描述符的是(C)157A.chmod B. lchown C. fchown D.chown 43. 硬鏈接是(B)162A. 指向目標(biāo)文件的指針 B. 指向文件的索引節(jié)點 C. 可跨越不同文件系統(tǒng)創(chuàng)建 D.可通過symlink()來創(chuàng)建 44. 讀取鏈接readlink和刪除鏈接unlink操作對象是(C)163A. 都只對硬鏈接有效 B. 都對軟鏈接無效 C. 讀取只對軟鏈接有效,刪除都兩種都有效 D.讀取對兩種都有效,刪除只對軟鏈接有效。45. 目錄文件的讀取函數(shù)re
13、addir()參數(shù)和返回值的含義()C 167A. 參數(shù)和返回值都指向目錄文件 B.參數(shù)和返回值都指向目錄項C.參數(shù)指向目錄文件,返回值指向目錄項 D.返回值指向目錄文件,參數(shù)指向目錄項46. 對磁盤文件的標(biāo)準(zhǔn)I/O操作一般是實現(xiàn)(A)171A.全緩沖 B.行緩沖 C.不帶緩沖 D.都可以47. 當(dāng)標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出涉及交互作用設(shè)備時,它們是(B)A.全緩沖 B.行緩沖 C.不帶緩沖 D.都可以48. 標(biāo)準(zhǔn)錯誤輸出是(C)A.全緩沖 B.行緩沖 C.不帶緩沖 D.都可以49. 在函數(shù)fopen() 中文件打開模式中要求文件必須存在的模式是(A)172A.r和r+ B.w和w+ C.a和a+ D
14、.ab和wb50. 在函數(shù)fopen() 中文件打開模式中不是可讀寫的方式打開文件模式是(D)A.r+ B.w+ C.a+ D.r51. 在打開函數(shù)中其中是在由指定的流上打開由路徑名指定的文件,其返回值為指向文件流指針,此函數(shù)用于將一個指定的文件打開為一個預(yù)定義的標(biāo)準(zhǔn)流(C)A.open B.fopen C.freopen D.fdopen52. 以下函數(shù)中表示從某流中讀取一個字符但該函數(shù)不帶參數(shù),表示從標(biāo)準(zhǔn)輸入流中讀字符的函數(shù)是(C)174A.gets B.getc C.getchar D.fgec53. 當(dāng)?shù)竭_(dá)文件尾端或出錯時,字符讀取函數(shù)的返回值都是EOF,為進(jìn)一步確認(rèn)文件是否已到文件尾
15、,應(yīng)當(dāng)通過(B)函數(shù)來判斷。A.ferror B.feof C.cleanerr D.perror54. 在定位函數(shù)中,可直接將流的讀寫指針設(shè)置到文件的起始位置同時會將錯誤指示器errno 清零的函數(shù)是()rewind 182 無答案A.ferror B.feof C.clearerr 174 D.perror55. 下面關(guān)于ftell()函數(shù)成功調(diào)用說法不正確的是(C)A. 會清除流結(jié)束標(biāo)志 B.返回讀寫指針當(dāng)前相對文件起始位置的位移量C.返回讀寫指針當(dāng)前相對文件結(jié)束位置的位移量 D.會撤銷已調(diào)用ungetc()對流的影響56. 格式化輸出可把格式化數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出、指定文件及字符緩沖區(qū)。
16、其中()函數(shù)是將格式化數(shù)據(jù)輸出到指定大小的字符緩沖區(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)于臨時文件不正確的是A186A.可通過tmpnam()創(chuàng)建 B.也可通過tmpfile()創(chuàng)建 C.程序結(jié)束時或關(guān)閉文件時自動刪除 D.調(diào)用tmpname 次數(shù)有限制59. 下列是進(jìn)程的異常終止的是(D)193A. 從main中調(diào)用return返回 B.調(diào)用exi
17、t C.調(diào)用_exit D.調(diào)用abort60. 不屬于非格式化標(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.有一個整型參數(shù) D.用于正常終止一個進(jìn)程62. 內(nèi)核使程序執(zhí)行的方法的是(A)A. 調(diào)用exec函數(shù) B.調(diào)用exit/_exit C.從main返回 D.收到一個系統(tǒng)終止信號63. 關(guān)于atexit函數(shù)正確的是(D)A. 一個進(jìn)程可登記超過32個函數(shù) B.函數(shù)登記的順序 和調(diào)用順序相同 B. 同一函數(shù)可登記多次,但調(diào)用一次 D.在顯示或隱式調(diào)用exit時則執(zhí)
18、行這些登記的終止處理程序64. 非初始化數(shù)據(jù)段由exec賦初值常稱為(C)196A. 正文段 B.數(shù)據(jù)段 C.bss段 D.堆65. 在存儲空間布局中從低地址到高地址依次分布為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前后實際用戶ID C.調(diào)用exec前后實際組ID D.調(diào)用exec前后有
19、效用戶ID和有效組ID68當(dāng)waitpid函數(shù)的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)識號 C.-1 D.170. fork函數(shù)在子進(jìn)程中的返回值是(A)A.0 B.創(chuàng)建的子進(jìn)程的進(jìn)程標(biāo)識號 C.-1 D.171. 進(jìn)程可以忽略大部分信號,但下列信號中(D)不能忽略213A.SIGBORT B.SIGILL C.SIGQUIT D.SIGKILL72. 調(diào)用exec函數(shù)會將原來設(shè)置為要捕獲的信號都更改為(A)214A. 默認(rèn) B.忽略
20、C.另一捕獲 D.默認(rèn)或忽略73. 可用于在不同主機(jī)的進(jìn)程間通信的技術(shù)是(D)225A. 管道 B.共享內(nèi)存 C.消息隊列 D.套接字74. 只能在同源進(jìn)程間通信的技術(shù)(A)224A. 普通管道 B.命名管道 C.消息隊列 D.共享內(nèi)存75. 不屬于System V IPC通信技術(shù)的是(A)A. 管道 B.消息隊列 C.信號量 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獲取某個環(huán)境變量值使用函數(shù)AAgetenv Bpute
21、nv Csetenv Dunsetenv77文件系統(tǒng)保存在磁盤的BA.引導(dǎo)塊 B.超級塊 C.i節(jié)點塊 D.數(shù)據(jù)塊78Linux文件系統(tǒng)的根目錄的i節(jié)點號為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下面那個不是lseek第三個參數(shù)的取值CA.SEEK_SETB.SEEK_CURC.SEEK_NOWD.SEEK_END82可以使用(C)系統(tǒng)調(diào)用獲得符號鏈接所引用文件名稱A.linkB.symlinkC.read
22、linkD.softlink83獲得工作路徑名稱的系統(tǒng)調(diào)用是AA.getcwdB.getpwuidC.getgrgidD.getlogin84通過文件屬性中的uid獲得文件擁有者名字的系統(tǒng)調(diào)用是BA.getcwdB.getpwuidC.getgrgidD.getlogin85通過文件屬性中的gid獲得文件所屬組名字的系統(tǒng)調(diào)用是CA.getcwdB.getpwuidC.getgrgidD.getlogin86根據(jù)文件路徑來改變文件權(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是L
23、inux內(nèi)核版,而Ubuntu 12.04.1是Linux的發(fā)行版2.Shell是linux系統(tǒng)的一種命令行用戶界面,提供了用戶與操作系統(tǒng)進(jìn)行交互的接口,本質(zhì)上是命令解釋器,可為用戶提供個性化的使用環(huán)境。3.在Shell中測試運算有文件屬性測試、字符串測試、數(shù)值測試、邏輯運算。4. 專門執(zhí)行整數(shù)算術(shù)運算的命令let所指表達(dá)式可執(zhí)行C語言中常見的算術(shù)、邏輯、位運算、比較運算等。 5Vi的三中工作模式:插入模式、命令模式、末行模式。6Gcc生成可執(zhí)行文件的四個步驟:預(yù)處理、編譯、匯編、鏈接。預(yù)處理是對源程序進(jìn)行頭文件加載和宏展開等操作,由cpp完成;匯編一是產(chǎn)生匯編代碼,二是產(chǎn)生二進(jìn)制的目標(biāo)文件,
24、由gcc使用as;生成的多.o文件和使用到的庫文件鏈接成為可被操作系統(tǒng)執(zhí)行的可執(zhí)行程序,使用ld工具,可使用兩類庫文件。7庫分為 靜態(tài)庫 和共享庫 。靜態(tài)庫由多個.o文件組成的集合,文件成員沒有特殊的存在格式,使用“ar”可維護(hù)和管理,庫文件后綴為“.a”;共享庫多個.o文件由編譯器按照一定特殊的方式生成。多個可執(zhí)行程序可共享庫文件的代碼段,但不共享數(shù)據(jù)。8命令行參數(shù)是main。函數(shù)的參數(shù)yMain函數(shù)的參數(shù)若有兩個參數(shù)則第一個參數(shù)代表命令行參數(shù)個數(shù)、第二個參數(shù)代表指向各命令行參數(shù)字符串的指針數(shù)組。9Linux 中日期時間的表示方法有:算術(shù)類型、結(jié)構(gòu)體類型、字符串類型。10如果一個C程序的入口
25、表示為main(int argc,char *argv),編譯該程序后的可執(zhí)行程序為a.out,那么在命令“./a.out f foo”后,main中的參數(shù)argv1指向的字符串是(“-f”)。11Linux系統(tǒng)下表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤輸出的文件描述符(符號表示)分別為(STDIN_FILENO、STDOUT_FILENO 、STDERR_FILENO),它們的值分別為0、1、2。12數(shù)字635表示的權(quán)限使用字母的方式表示為 (rwwxr-x)、使用符號方式表示為(S_IRUSR | S_IWUSR | S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH)。1
26、3系統(tǒng)調(diào)用open的功能是打開或創(chuàng)建文件。14 使用open打開文件時有三個標(biāo)志必須要選擇其一,這三個標(biāo)志是O_RDONLY、O_WRONLY、O_RDWR。15文件偏移量代表下一次讀或?qū)懙奈恢谩?6將文件偏移量市值為當(dāng)前偏移處之前的4個字節(jié)的維護(hù)使用lseek(fd,(4),(SEEK_CUR)。17設(shè)置打開文件標(biāo)志(O_TRUNC),可以截斷文件為0,使用系統(tǒng)調(diào)用(truncate)可以截斷文件或者加長文件。18如果umask設(shè)置為022,則創(chuàng)建一個新文件夾(數(shù)字表示)的權(quán)限為(644)、創(chuàng)建一個新目錄的權(quán)限為(755)。19如果umask設(shè)置為024,則創(chuàng)建一個新文件夾(數(shù)字表示)的權(quán)限
27、為(642)、創(chuàng)建一個新目錄的權(quán)限為(753)。20使用系統(tǒng)調(diào)用(umask)可以設(shè)置和得到文件模式的屏蔽字。21創(chuàng)建硬鏈接使用系統(tǒng)調(diào)用(link),創(chuàng)建符號鏈接使用系統(tǒng)調(diào)用(symlink)。22獲得工作路徑名稱的系統(tǒng)調(diào)用是(getcwd)。23可以使用(stat或fstat或lstat)系統(tǒng)調(diào)用顯示文件屬性信息。24chmod,chown,utime都可以修改文件i節(jié)點信息,其中chmod的功能是(更改文件權(quán)限)、chown的功能是(更改文件所有者和所屬組)、utime的功能是(更改文件訪問時間和修改時間)。25若實現(xiàn)將標(biāo)準(zhǔn)輸出重定向到文件描述符為6對應(yīng)的文件上,則應(yīng)使用語句(dup2(6
28、,1))。26系統(tǒng)調(diào)用(Unlink)的作用是刪除目錄項,這里的目錄項是指(文件名和文件i節(jié)點的對應(yīng)關(guān)系)。27打開目錄使用(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 *pathna
29、me))系統(tǒng)調(diào)用。30.popen函數(shù)實現(xiàn)的操作:創(chuàng)建一個管道,fork一個子進(jìn)程,然后關(guān)閉管道的不使用端,在子進(jìn)程中exexc一個shell以執(zhí)行一條命令,然后等到命令的終止。31.使用kill發(fā)送信號時,發(fā)送方進(jìn)程應(yīng)具有相應(yīng)的權(quán)限:接受和發(fā)送進(jìn)程的所有者相同,發(fā)送進(jìn)程的所有者是超級用戶三、簡答題1系統(tǒng)調(diào)用、庫函數(shù)的區(qū)別和練習(xí)從用戶角度觀察,系統(tǒng)調(diào)用和庫函數(shù)都以C函數(shù)形式出現(xiàn),提供給用戶一種功能實現(xiàn)的接口,需要用戶輸入指定的參數(shù),調(diào)用結(jié)束得到指定的返回值。從實現(xiàn)者角度觀察,庫函數(shù)是在系統(tǒng)調(diào)用上層的函數(shù),庫函數(shù)一般指程序員可以使用的通用函數(shù)。系統(tǒng)調(diào)用由兩部分組成:(1)核心函數(shù):是實現(xiàn)系統(tǒng)調(diào)用
30、功能的代碼,作為操作系統(tǒng)的核心駐留在內(nèi)存中,是一種共享代碼。運行在核心態(tài)。(2)接口函數(shù):是提供給應(yīng)用程序的API,以庫函數(shù)的形式存在于Linux的lib.a中,該庫中存放了所有系統(tǒng)調(diào)用的接口函數(shù)的目標(biāo)代碼,用匯編語言書寫。其主要功能是把系統(tǒng)調(diào)用號,入口參數(shù)地址傳給相應(yīng)的核心函數(shù),并使用戶態(tài)下運行的應(yīng)用程序陷入核心態(tài)。4完成如下命令(1)新建用戶tom 和用戶組student#useradd tom#passwd tom#groupadd student(2)新建文件file#touch file(3)將文件file 改名為test,然后將test拷貝到/home#mv file test#c
31、p test /home(4)將/home/test文件的擁有著修改為tom,將文件所屬組該為student#chown tom:student /home/test5靜態(tài)庫和共享庫的區(qū)別(1)靜態(tài)庫的代碼在編譯時就已連接到開發(fā)人員開發(fā)的應(yīng)用程序中。(2)共享庫只是在程序開始運行時才載入,在編譯時,只是簡單地指定需要使用的庫函數(shù)。(3)靜態(tài)庫文件以.a結(jié)尾,共享庫文件以.so結(jié)尾。 6Linux文件類型主要有哪七類?常規(guī)文件、目錄文件、字符設(shè)備文件、塊設(shè)備文件、管道文件、鏈接文件、套接字文件7簡述文件、i節(jié)點、文件名、目錄之間的關(guān)系每個存在磁盤上的文件都由i節(jié)點和數(shù)據(jù)塊兩部分組成,i節(jié)點和文件
32、一一對應(yīng),一個i節(jié)點可以對應(yīng)多個文件名,文件名和i節(jié)點的對應(yīng)關(guān)系叫做文件的硬鏈接,文件名和i節(jié)點的對應(yīng)關(guān)系保存在目錄文件中。8什么是文件描述符?(1)一個非負(fù)整數(shù),內(nèi)核以此來標(biāo)識一個特定進(jìn)程正在操作的文件。(2)012代表三個標(biāo)準(zhǔn)的文件描述符,分別為標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯誤輸出9使用符號方式表示rwxrwxrwx權(quán)限S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH| S_IWOTH|S_IXOTH10寫出open一下6種打開標(biāo)志:只讀、只寫、讀寫、追加、文件不存在創(chuàng)建、截斷為0O_RDONLY O_WRONLY O_RDWR O
33、_APPEND O_CREAT O_TRUNC 11讀程序,寫出執(zhí)行結(jié)果并解釋得到該結(jié)果的原因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是三個標(biāo)準(zhǔn)的文件描述符默認(rèn)已經(jīng)被占用,所以第一個open的返回值為3,第二個open返回的是4。12回答stat、fstat、latat三個系統(tǒng)調(diào)
34、用的區(qū)別stat根據(jù)路徑獲得文件元數(shù)據(jù)信息fstat根據(jù)文件描述符獲得文件元數(shù)據(jù)信息前兩者如果遇到符號鏈接文件則會一直引用至非符號鏈接文件lstat獲得符號鏈接文件本身的文件元數(shù)據(jù)信息12dup和dup2的區(qū)別和聯(lián)系聯(lián)系:dup與dup2都用來將新文件描述符指向原來文件描述符指向的打開文件描述。區(qū)別:dup返回的新文件描述符為最小可用的文件描述符,dup2返回的新文件描述符可以通過第二個參數(shù)指定。13硬鏈接和符號鏈接的區(qū)別(1)命令ln 原文件硬鏈接文件(不能對目錄創(chuàng)建硬鏈接)ln s 原文件/目錄符號鏈接文件(2)是否新增文件:硬鏈接不增文件,符號鏈接增加文件。(3)刪除原文件/目錄硬鏈接:
35、對應(yīng)i節(jié)點鏈接數(shù)-1。符號鏈接:符號鏈接文件失效。 (4)刪除鏈接文件刪除硬鏈接文件,使對應(yīng)i節(jié)點的鏈接數(shù)-1。刪除符號鏈接文件,對原文件/目錄無任何影響(5)是否跨文件系統(tǒng):硬鏈接不可以,符號鏈接可以14fork與vfork區(qū)別?(1)fork創(chuàng)建的子進(jìn)程復(fù)制父進(jìn)程的整個地址空間,vfork不創(chuàng)建這一副本,子進(jìn)程借用父進(jìn)程的地址空間,直到其調(diào)用exec族函數(shù)或終止;(2)fork創(chuàng)建的子進(jìn)程和父進(jìn)程相互獨立地運行,而vfork創(chuàng)建子進(jìn)程后掛起父進(jìn)程,直到子進(jìn)程終止或調(diào)用exec族函數(shù)。使用kill發(fā)送信號時,發(fā)送方進(jìn)程應(yīng)具有相應(yīng)的權(quán)限:接受和發(fā)送進(jìn)程的所有者相同,發(fā)送進(jìn)程的所有者是超級用戶。
36、15閱讀以下代碼,若execlp調(diào)用成功的話,“Done!”會打印輸出嗎?為什么?#includeint main()printf(“Running ps with execlpn”);execlp(“ps”,”ps”,”-af”,0);printf(“Done!n”);exit(0);不會輸出“Done!”。原因:執(zhí)行execlp(“ps”,”ps”,”-af”,0)調(diào)用成功后,當(dāng)前進(jìn)程的地址空間被新的程序ps所替代,將執(zhí)行“ps -af”16試寫出下列程序段的運行結(jié)果,并解釋原因int x=0,int y=0;void thread1(void)printf(“This is pthrea
37、d1.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(“This is pthread1.the sentence 1n”);y=8+y;void main(void)pthread_t id1,id2;pthread_create(&id1,NULL,(void *)thread1,NULL);pthread_ creat
38、e(&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 pthread2.the sentense 1This is pthread1.the sentense 2This is pthread2.the sentense 2x=11,y=15原因:(1)線程1先運行,線程2后運行。線程1執(zhí)行sleep(1);后阻塞,線程2繼續(xù)執(zhí)行,線程2執(zhí)行到sleep(
39、1);時線程2阻塞,線程1阻塞結(jié)束繼續(xù)執(zhí)行,線程1執(zhí)行結(jié)束后線程繼續(xù)執(zhí)行到結(jié)束。(2)線程1和線程2共享進(jìn)程的數(shù)據(jù)段,因此共享變量x,y。17進(jìn)程間通信的六種方式是什么?簡述他們的通信原理?(1)信號:用于通知接收進(jìn)程有某種事件發(fā)生。(2)管道:連接一個進(jìn)程的輸出至另一個進(jìn)程的輸入的一種方法。(3)信號量:一個計數(shù)器,用來記錄對某個資源的使用情況。(4)共享內(nèi)存:允許多個進(jìn)程訪問同一塊內(nèi)存空間。(5)消息隊列:消息的鏈表,鏈表中每個節(jié)點包括消息類型和正文兩部分。(6)套接字:在網(wǎng)絡(luò)上主機(jī)間進(jìn)程進(jìn)行通信的方式。18PIPE與FIFO的區(qū)別與聯(lián)系PIPE為未命名管道,F(xiàn)IFO為命名管道。聯(lián)系:PI
40、PE和FIFO都是單向傳輸,一端為讀,另一端為寫。區(qū)別:PIPE只能在有親緣關(guān)系的進(jìn)程中使用,如父子進(jìn)程;FIFO有名字,所以只要知道該名字,無關(guān)進(jìn)程之間也可以使用。19書名產(chǎn)生信號的幾種方式?(1)用戶操作。如鍵盤操作Ctrl-C,最終使得內(nèi)核產(chǎn)生信號SIGINT。(2)進(jìn)程執(zhí)行出錯。如浮點數(shù)溢出,內(nèi)核也會產(chǎn)生信號。(3)進(jìn)程執(zhí)行某個系統(tǒng)調(diào)用。如調(diào)用kill向某個進(jìn)程或進(jìn)程組發(fā)送信號。20說明信號傳遞的過程。(1)生成(generating)。內(nèi)核要更新目標(biāo)進(jìn)程的數(shù)據(jù)結(jié)構(gòu),表示一個新的信號已經(jīng)被發(fā)送給此進(jìn)程。此時,進(jìn)程并沒有對信號做出任何響應(yīng)。(2)傳遞(delivery)。強(qiáng)迫目標(biāo)進(jìn)程對信
41、號做出響應(yīng)。四、編程題1向文件f1中寫入“hello world!”,然后再將f1中的內(nèi)容讀出并顯示在屏幕上。(注意必要的錯誤判斷)#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)
42、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中寫入“aabbccddee”,然后將偏移量移到絕對值偏移為4的位置處,讀6個字符,并將結(jié)果顯示在屏幕上#include #include #include int main()int fd;char buf111=aabbccddee;char buf210;int num;fd = open( f2,O_RD
43、WR| 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中寫入“aabbccddeeffgghh”,然后將文件截短后的文件內(nèi)容
44、讀出并顯示在屏幕上#include #include #include 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);exit(1);num=write(fd,buf1,sizeof(buf1)-1); if(num!=(sizeof(buf1)-1)printf(write less than wantn);lseek(fd,0,SEEK_SET);ftru
45、ncate(fd,8);num=read(fd,buf2,8);if(num!=8)printf(read less than 8n);write(1,buf2,8);close(fd);4實現(xiàn)“cat文件名”顯示文件內(nèi)容#include main(int argc,char *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實現(xiàn)“cp 原文件 目標(biāo)文件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)防兒童近視教學(xué)課件
- 相關(guān)方安全教育培訓(xùn)
- 順利消防案例分析課件
- 項目管理中的溝通管理
- 音樂課件兒童
- 汽車配套產(chǎn)業(yè)基地項目運營管理方案(范文)
- 城市污水管網(wǎng)建設(shè)工程可行性研究報告(范文參考)
- 鄉(xiāng)鎮(zhèn)各項管理制度
- 西醫(yī)綜合試題六(含答案)
- 2025年抗阿米巴病藥項目合作計劃書
- 2024版機(jī)電工程施工質(zhì)量標(biāo)準(zhǔn)化數(shù)字模型圖集
- 電力行業(yè)安全隱患案例警示教育心得體會
- 廣東省2025年中考英語模擬試卷試題及答案詳解
- 2023年3月26日安徽省中小學(xué)新任教師公開招聘《小學(xué)語文》試題及答案
- 小學(xué)一年級下冊數(shù)學(xué)口算題卡及口算天天練
- 2025新高考數(shù)學(xué)核心母題400道(教師版)
- 特種設(shè)備事故應(yīng)急處置
- 高端SPA會所的內(nèi)外環(huán)境設(shè)計藝術(shù)與實踐
- 廣告牌的施工方案
- 《湍流中大尺度結(jié)構(gòu)對小尺度結(jié)構(gòu)的影響》
- DB33T 1180-2019 餐廚垃圾資源化利用技術(shù)規(guī)程
評論
0/150
提交評論