版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、1. 在Linux目錄結(jié)構(gòu)中目錄中的文件是普通用戶可以使用的可使用的可執(zhí)行文件的目錄是B19 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)中用來存放系統(tǒng)配置文件D目錄 A./lib B./dev C./proc D./etc4. Linux三種特殊權(quán)限中僅用于目錄文件的權(quán)限是C22 A.SUID B.SGID 5. Linux三種權(quán)限中允許進(jìn)入目錄的權(quán)限(C) 22 A.r-可讀 B.w-可寫 6. 以下腳本文件最先自動執(zhí)
2、行的是A24A./etc/rc.local B./etc/profile C./.bashrc D./.bash_logout7. 下面通配符可匹配多個任意字符的通配符是(A)29A.* B. ? C.abcde D.!a-e8. 輸出重定向符號右邊的文件已經(jīng)存在,不會覆蓋文件而是追加的定向符是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. 可通過接受標(biāo)準(zhǔn)輸入作為輸出內(nèi)容來創(chuàng)建簡單文件的命令是B42A. touch B.cat C.vi D. gedit14. 不帶有編輯功能但有翻頁、按行滾動、搜索功能的命令是B 43A. cat C.head 和 tail D vi15. wc命令可統(tǒng)計文件的行數(shù)、字?jǐn)?shù)和字節(jié)數(shù)。在以下格式中只顯示文件的字?jǐn)?shù)的是C 51A. wc B. wc -c C. wc -w D wc -l16. 可實現(xiàn)文件重命名的命令是B52A. cp B. mv C. ln D rename17
4、. 在Linux系統(tǒng)中可通過掛載將光盤、U盤或一個文件系統(tǒng)連接到主目錄樹的一個目錄節(jié)點。期中光盤或光盤鏡像對應(yīng)的文件系統(tǒng)類型是C44A. vfat B. ext3 C.iso9660 D vboxsf18. 下面更改文件命令只能更改符號連接的目標(biāo)文件的權(quán)限的命令是CA. chown B.chgrp C. chmod19. chmod命令的權(quán)限模式可使用字符串形式或八進(jìn)制形式,當(dāng)使用八進(jìn)制形式時模式應(yīng)由三或四位八進(jìn)制構(gòu)成,其中從最高到最低位依次表示為A每個八進(jìn)制的三個二進(jìn)制位從高到低分別表示為有無讀、寫、執(zhí)行權(quán)限A.文件所有者 文件所屬組 其他用戶 B. 其他用戶 文件所屬組 文件所有者C.文件
5、所屬組 文件所有者 其他用戶 D.其他用戶 文件所有者 文件所屬組20. chmod命令的權(quán)限模式可使用字符串形式或八進(jìn)制形式,當(dāng)使用八進(jìn)制形式時模式應(yīng)由三或四位八進(jìn)制構(gòu)成,其中每個八進(jìn)制的三個二進(jìn)制位從高到低分別表示為有無 AA.讀寫執(zhí)行B.寫讀執(zhí)行 C.執(zhí)行 讀 寫 D.執(zhí)行 寫 讀21. 運行時不會創(chuàng)建子進(jìn)程的方式是C69A. 賦予shell程序文件可執(zhí)行權(quán)限 ,直接運行shell 程序外部命令B. 調(diào)用命令解釋器解釋執(zhí)行shell程序 Shell函數(shù)C.使用source命令執(zhí)行shell 程序內(nèi)部命令D.用( )將多條命令括起來而形成的復(fù)合命令執(zhí)行22. 對于使用C連接的兩條命令,只有
6、當(dāng)左邊的命令執(zhí)行失敗退出狀態(tài)為非0值才會繼續(xù)執(zhí)行右邊的命令。A. ;B. && C. | 23. Shell執(zhí)行命令在同名時優(yōu)先級別最高的是AA.別名 24. 將一個變量stab的值清除即成為空串的命令是DA. $stab B.$#stab C.$stab D unset stab25. Shell變量不需要預(yù)先定義,假設(shè)對其進(jìn)行數(shù)值操作,可指定變量的屬性為整數(shù),具體命令為DA. declare -a 變量名 B.declare -f 變量名 C.typeset -r 變量名 D.typeset -i 變量名26. Shell中可表示引用數(shù)組abrr中的所有非空元素的引用是B7
7、6A. $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. 在Shell變量引用操作符可實現(xiàn)字符串替換其中D用來測試,如果變量stra存在,則返回為變量stra的值,否則輸出為word ,并退出當(dāng)前腳本程序A.$stra-word B. $stra=word C.$stra: +word D.$stra: ?word 29.
8、在Shell變量引用操作符可實現(xiàn)模式匹配替換其中B用來的含義是假設(shè)pattern 匹配變量stra的頭部,則刪除最長匹配部分并返回剩余部分。A. $stra #pattern B.$stra#pattern C.$stra%pattern D.$stra%pattern30. 為了使子進(jìn)程能繼承父進(jìn)程中定義的變量,就必須使D命令將這些變量送入進(jìn)程轉(zhuǎn)出區(qū)83A. read B.set C.shift 31. 使用D形式時,即使表達(dá)式中有Shell的特殊字符時,也不必用雙引號將其括起來。87A. test 表達(dá)式 B. 表達(dá)式 C.let 算術(shù)表達(dá)式 D.算術(shù)表達(dá)式32. 使用D形式時可以返回算術(shù)
9、表達(dá)式確實切值A(chǔ). test 表達(dá)式 B. let 算術(shù)表達(dá)式 C.算術(shù)表達(dá)式 D.$算術(shù)表達(dá)式33. gcc可以對編譯階段進(jìn)行控制,其中B選項規(guī)定編譯到匯編語言,不進(jìn)行其他操作。107A. -E B.-S 34. gcc可以對編譯階段進(jìn)行控制,其中A選項設(shè)定庫文件的路徑 A.-L path 35. gcc可以對編譯階段進(jìn)行控制,其中D選項在可執(zhí)行文件中包含標(biāo)準(zhǔn)調(diào)試信息,供gdb進(jìn)行調(diào)試。A. -Wall B. -Werror C. -w 36. 在Linux底層文件訪問中的大多數(shù)操作都是圍繞文件描述符來展開的其中A函數(shù)是內(nèi)核向進(jìn)程返回一個文件描述符為以后使用148A.open() B. re
10、ad() C. write() D.close()37. 最終文件權(quán)限取決于DA. mode B. unmask C. mode&unmask D.mode&unmask 非掩碼38. Lseek()中第三個參數(shù)的值為0表示A39. 文件屬性讀取函數(shù)中,依據(jù)文件名且當(dāng)文件是一個符號鏈接時返回是鏈接所指向文件的信息的函數(shù)是A152A.stat 40. 利用文件屬性讀取函數(shù)獲取的st_mode進(jìn)行文件類型測試方法正確的選項是DA. 對成員st_mode同文件類型掩碼進(jìn)行與運算 B. 對成員st_mode直接判斷C. 利用帶成員st_mode參數(shù)宏用于文件類型判斷定義 D. A和C都
11、可以41. 以下函數(shù)中可關(guān)閉文件的函數(shù)AA.close() B. dup2() C. A和B都可以 D.dup()42. 以下底層文件訪問函數(shù)中第一個參數(shù)是文件描述符的是C157A.chmod B. lchown C. fchown43. 硬鏈接是B162A. 指向目標(biāo)文件的指針 B. 指向文件的索引節(jié)點C. 可跨越不同文件系統(tǒng)創(chuàng)建 D.可通過symlink()來創(chuàng)建44. 讀取鏈接readlink和刪除鏈接unlink操作對象是(C)163A. 都只對硬鏈接有效 B. 都對軟鏈接無效B. 讀取只對軟鏈接有效,刪除都兩種都有效 D.讀取對兩種都有效,刪除只對軟鏈接有效。45. 目錄文件的讀取函
12、數(shù)readdir參數(shù)和返回值的含義C 167A.C.參數(shù)指向目錄文件,返回值指向目錄項 D.返回值指向目錄文件,參數(shù)指向目錄項46. 對磁盤文件的標(biāo)準(zhǔn)I/O操作一般是實現(xiàn)A17147. 當(dāng)標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出涉及交互作用設(shè)備時,它們是BA.全緩沖 48. 標(biāo)準(zhǔn)錯誤輸出是CA.全緩沖 B.行緩沖 49. 在函數(shù)fopen() 中文件打開模式中要求文件必須存在的模式是A172A.r和r+ 50. 在函數(shù)fopen() 中文件打開模式中不是可讀寫的方式打開文件模式是DA.r+ B.w+ C.a+ 51. 在打開函數(shù)中其中是在由指定的流上打開由路徑名指定的文件,其返回值為指向文件流指針,此函數(shù)用于將一個
13、指定的文件打開為一個預(yù)定義的標(biāo)準(zhǔn)流CA.open B.fopen C.freopen 52. 以下函數(shù)中表示從某流中讀取一個字符但該函數(shù)不帶參數(shù),表示從標(biāo)準(zhǔn)輸入流中讀字符的函數(shù)是C174A.gets B.getc C.getchar 53. 當(dāng)?shù)竭_(dá)文件尾端或出錯時,字符讀取函數(shù)的返回值都是EOF,為進(jìn)一步確認(rèn)文件是否已到文件尾,應(yīng)當(dāng)通過B函數(shù)來判斷。A.ferror B.feof 54. 在定位函數(shù)中,可直接將流的讀寫指針設(shè)置到文件的起始位置同時會將錯誤指示器errno 清零的函數(shù)是rewind 182 無答案55. 下面關(guān)于ftell函數(shù)成功調(diào)用說法不正確的選項是CA. D.會撤銷已調(diào)用un
14、getc對流的影響56. 格式化輸出可把格式化數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出、指定文件及字符緩沖區(qū)。其中函數(shù)是將格式化數(shù)據(jù)輸出到指定大小的字符緩沖區(qū)。D183A.printf B.fprintf C.sprintf 57. 格式化輸入可從標(biāo)準(zhǔn)輸入、指定文件及字符緩沖區(qū)讀取格式化數(shù)據(jù)。其中函數(shù)是輸出到指定文件。BA.printf B.fprintf 58. 關(guān)于臨時文件不正確的選項是A186A.可通過tmpnam創(chuàng)建 B.也可通過tmpfile創(chuàng)建C.程序結(jié)束時或關(guān)閉文件時自動刪除 D.調(diào)用tmpname 次數(shù)有限制59. 以下是進(jìn)程的異常終止的是D193A. 從main中調(diào)用return返回 B.調(diào)用ex
15、it C.調(diào)用_exit 60. 不屬于非格式化標(biāo)準(zhǔn)I/O的是C61. 關(guān)于exit()函數(shù)不正確的選項是B194A. 先清理后進(jìn)入內(nèi)核 62. 內(nèi)核使程序執(zhí)行的方法的是AA. 調(diào)用exec函數(shù)63. 關(guān)于atexit函數(shù)正確的選項是DA. 一個進(jìn)程可登記超過32個函數(shù) B.函數(shù)登記的順序 和調(diào)用順序相同B. 同一函數(shù)可登記多次,但調(diào)用一次64. 非初始化數(shù)據(jù)段由exec賦初值常稱為C196A. 正文段 B.數(shù)據(jù)段 65. 在存儲空間布局中從低地址到高地址依次分布為A數(shù)據(jù)段bss段堆棧 堆bss段數(shù)據(jù)段正文段堆棧數(shù)據(jù)段 正文段數(shù)據(jù)段bss段棧66. PID為0的交換進(jìn)程是A20067. 調(diào)用e
16、xec可能有變化的是D204A.C.調(diào)用exec前后實際組ID 68當(dāng)waitpid函數(shù)的pid參數(shù)設(shè)置為A表示等待任一子進(jìn)程終止。211A.pid=-1 B.pid=0 C.pid>0 D.pid<-169. fork函數(shù)在父進(jìn)程中的返回值是B206A.0 70. fork函數(shù)在子進(jìn)程中的返回值是A71. 進(jìn)程可以忽略大部分信號,但以下信號中D不能忽略213A.SIGBORT B.SIGILL C.SIGQUIT 72. 調(diào)用exec函數(shù)會將原來設(shè)置為要捕獲的信號都更改為A214A. 默認(rèn)73. 可用于在不同主機的進(jìn)程間通信的技術(shù)是D225A. 管道 B.共享內(nèi)存 C.消息隊列
17、74. 只能在同源進(jìn)程間通信的技術(shù)A224A. 普通管道 75. 不屬于System V IPC通信技術(shù)的是AA. 管道 76. 建立從父進(jìn)程到子進(jìn)程的管道的方法B225A. 父進(jìn)程關(guān)閉管道的寫端,子進(jìn)程關(guān)閉管道讀端B.父進(jìn)程關(guān)閉管道的讀端,子進(jìn)程關(guān)閉管道的寫端76獲取某個環(huán)境變量值使用函數(shù)AAgetenv Bputenv Csetenv Dunsetenv77文件系統(tǒng)保存在磁盤的BA.引導(dǎo)塊 78Linux文件系統(tǒng)的根目錄的i節(jié)點號為CA. 0 B. 1 79文件描述符的數(shù)據(jù)類型是BA. char B.int 80設(shè)置文件偏移量的系統(tǒng)調(diào)用是CA. truncateB. syncC . lse
18、ek81下面那個不是lseek第三個參數(shù)的取值CA.SEEK_SETB.SEEK_CUR82可以使用C系統(tǒng)調(diào)用獲得符號鏈接所引用文件名稱A.linkB.symlink83獲得工作路徑名稱的系統(tǒng)調(diào)用是AA.getcwd84通過文件屬性中的uid獲得文件擁有者名字的系統(tǒng)調(diào)用是BA.getcwd85通過文件屬性中的gid獲得文件所屬組名字的系統(tǒng)調(diào)用是CA.getcwdB.getpwuidC.getgrgid86根據(jù)文件路徑來改變文件權(quán)限使用系統(tǒng)調(diào)用是BA.chownB.chmod 一、填空題內(nèi)核與發(fā)行版的關(guān)系:是Linux內(nèi)核版,而是Linux的發(fā)行版2.Shell是linux系統(tǒng)的一種命令行用戶界
19、面,提供了用戶與操作系統(tǒng)進(jìn)行交互的接口,本質(zhì)上是命令解釋器,可為用戶提供個性化的使用環(huán)境。文件屬性測試、字符串測試、數(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)文件,由gcc使用as;生成的多.o文件和使用到的庫文件鏈接成為可被操作系統(tǒng)執(zhí)行的可執(zhí)行程序,使用ld工具,可使用兩類庫文件。7庫分為 靜態(tài)庫 和共
20、享庫 。靜態(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ù)字符串的指針數(shù)組。9Linux 中日期時間的表示方法有:算術(shù)類型、結(jié)構(gòu)體類型、字符串類型。10如果一個C程序的入口表示為mainint argc,char *argv,編譯該程序后的可執(zhí)行程序為a.out,那么在命令“./a.out f foo”后,ma
21、in中的參數(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。13系統(tǒng)調(diào)用open的功能是打開或創(chuàng)建文件。14 使用open打開文件時有三個標(biāo)志必須要選擇其一,這三個標(biāo)志是O_RDONLY、O_WRONLY、O_RDWR。15文
22、件偏移量代表下一次讀或?qū)懙奈恢谩?6將文件偏移量市值為當(dāng)前偏移處之前的4個字節(jié)的維護(hù)使用lseekfd,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)限為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獲得工作路徑名稱的系
23、統(tǒng)調(diào)用是getcwd。23可以使用stat或fstat或lstat系統(tǒng)調(diào)用顯示文件屬性信息。24chmod,chown,utime都可以修改文件i節(jié)點信息,其中chmod的功能是更改文件權(quán)限、chown的功能是更改文件所有者和所屬組、utime的功能是更改文件訪問時間和修改時間。25假設(shè)實現(xiàn)將標(biāo)準(zhǔn)輸出重定向到文件描述符為6對應(yīng)的文件上,則應(yīng)使用語句dup2(6,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 *di
24、r)系統(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ù)實現(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)程
25、的所有者是超級用戶三、簡答題1系統(tǒng)調(diào)用、庫函數(shù)的區(qū)別和練習(xí)從用戶角度觀察,系統(tǒng)調(diào)用和庫函數(shù)都以C函數(shù)形式出現(xiàn),提供應(yīng)用戶一種功能實現(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)用功能的代碼,作為操作系統(tǒng)的核心駐留在內(nèi)存中,是一種共享代碼。運行在核心態(tài)。2接口函數(shù):是提供應(yīng)應(yīng)用程序的API,以庫函數(shù)的形式存在于Linux的中,該庫中存放了所有系統(tǒng)調(diào)用的接口函數(shù)的目標(biāo)代碼,用匯編語言書寫。其主要功能是把系統(tǒng)調(diào)用號,入口參數(shù)地址傳給相應(yīng)的核心函數(shù),并使用戶
26、態(tài)下運行的應(yīng)用程序陷入核心態(tài)。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靜態(tài)庫和共享庫的區(qū)別1靜態(tài)庫的代碼在編譯時就已連接到開發(fā)人員開發(fā)的應(yīng)用程序中。2共享庫只是在程序開始運行時才載入,在編譯時,只是簡單地指定
27、需要使用的庫函數(shù)。3靜態(tài)庫文件以.a結(jié)尾,共享庫文件以.so結(jié)尾。 6Linux文件類型主要有哪七類?常規(guī)文件、目錄文件、字符設(shè)備文件、塊設(shè)備文件、管道文件、鏈接文件、套接字文件7簡述文件、i節(jié)點、文件名、目錄之間的關(guān)系每個存在磁盤上的文件都由i節(jié)點和數(shù)據(jù)塊兩部分組成,i節(jié)點和文件一一對應(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)程正在操作的文件。2012代表三個標(biāo)準(zhǔn)的文件描述符,分別為標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯誤輸出9使用符號方式表示rwxrwxrwx權(quán)限S_
28、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_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);c
29、lose(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答復(fù)stat、fstat、latat三個系統(tǒng)調(diào)用的區(qū)別stat根據(jù)路徑獲得文件元數(shù)據(jù)信息fstat根據(jù)文件描述符獲得文件元數(shù)據(jù)信息前兩者如果遇到符號鏈接文件則會一直引用至非符號鏈接文件lstat獲得符號鏈接文件本身的文件元數(shù)據(jù)信息12dup和dup2的區(qū)別和聯(lián)系聯(lián)系:dup與dup2都用來將新文件描述符指向原來文件描述符指向的打開文件描述。區(qū)別:dup返回的新文件描述符
30、為最小可用的文件描述符,dup2返回的新文件描述符可以通過第二個參數(shù)指定。13硬鏈接和符號鏈接的區(qū)別1命令ln 原文件硬鏈接文件不能對目錄創(chuàng)建硬鏈接ln s 原文件/目錄符號鏈接文件2是否新增文件:硬鏈接不增文件,符號鏈接增加文件。3刪除原文件/目錄硬鏈接:對應(yīng)i節(jié)點鏈接數(shù)-1。符號鏈接:符號鏈接文件失效。 4刪除鏈接文件刪除硬鏈接文件,使對應(yīng)i節(jié)點的鏈接數(shù)-1。刪除符號鏈接文件,對原文件/目錄無任何影響5是否跨文件系統(tǒng):硬鏈接不可以,符號鏈接可以14fork與vfork區(qū)別?1fork創(chuàng)建的子進(jìn)程復(fù)制父進(jìn)程的整個地址空間,vfork不創(chuàng)建這一副本,子進(jìn)程借用父進(jìn)程的地址空間,直到其調(diào)用exe
31、c族函數(shù)或終止;2fork創(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)程的所有者是超級用戶。15閱讀以下代碼,假設(shè)execlp調(diào)用成功的話,“Done!”會打印輸出嗎?為什么?#include<stdio.h>int main()printf(“Running ps with execlpn”);execlp(“ps”,”ps”,”-af”,0);printf(“Done!n”);exit(0);不會輸出“Done!”。原因:執(zhí)行ex
32、eclp(“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 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執(zhí)行sleep(1);后阻塞,線程2繼續(xù)執(zhí)行,線程2執(zhí)行到sleep(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ù)器,用來記錄對
35、某個資源的使用情況。4共享內(nèi)存:允許多個進(jìn)程訪問同一塊內(nèi)存空間。5消息隊列:消息的鏈表,鏈表中每個節(jié)點包括消息類型和正文兩部分。6套接字:在網(wǎng)絡(luò)上主機間進(jìn)程進(jìn)行通信的方式。18PIPE與FIFO的區(qū)別與聯(lián)系PIPE為未命名管道,F(xiàn)IFO為命名管道。聯(lián)系:PIPE和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)用
36、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。強迫目標(biāo)進(jìn)程對信號做出響應(yīng)。四、編程題1向文件f1中寫入“hello world!”,然后再將f1中的內(nèi)容讀出并顯示在屏幕上。注意必要的錯誤判斷#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個字符,并將結(jié)果顯示在屏幕上#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”,然后將文件截短后的文件內(nèi)容讀出并顯示在屏幕上#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實現(xiàn)“cat文件名”顯示文件內(nèi)容#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實現(xiàn)“cp 原文件 目標(biāo)文件”#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創(chuàng)建進(jìn)程,在子進(jìn)程中打印“I am the child”和子進(jìn)程pid,在父進(jìn)程中打印“I am the father”和父進(jìn)程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創(chuàng)建子進(jìn)程,在子進(jìn)程中執(zhí)行“ps -A”命令,父進(jìn)程等待子進(jìn)程結(jié)束后打印“child over”及所處理的子進(jìn)程進(jìn)程號#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信號,當(dāng)程序接收到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時限父子進(jìn)程向子進(jìn)程發(fā)送1234567890,子進(jìn)程接收并顯示#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操作系統(tǒng)內(nèi)核創(chuàng)始人是 C ABill Gates BRichard Stallman 2、以下哪種不是Linux的Shell類型 C Abash Bksh Crsh Dcsh3、下面關(guān)于Shell的說法,不正確的選項是 B 。A、一種命令語言解釋器 B、一種和C類似的程序語言C、操作系統(tǒng)的外殼 D、用戶與Linux
50、內(nèi)核之間的接口程序4、hda3表示 B 。A、IDE0接口上的從盤 B、IDE0接口上主盤的第三個分區(qū) C、IDE0接口上的第三個主分區(qū) D、IDE0接口上的第三個邏輯分區(qū) 5、一般情況下,Swap的大小建議是 C 。A、50M B、100M C、內(nèi)存大小的2倍 D、150M6、Linux下的cd命令可以改變用戶的當(dāng)前目錄,當(dāng)用戶鍵入cd并按回車后, A 。A、當(dāng)前目錄改為用戶主目錄 B、當(dāng)前目錄改為根目錄C、當(dāng)前目錄沒有變 D、當(dāng)前用戶改為上一級目錄7、在字符界面下啟動X-Window的命令是 BA、start B、startx C、begin D、beginx二、填空題將正確答案填在每題的空格內(nèi)。此題共40空,每空1分,共40分)1、安裝Linux時經(jīng)常建議初學(xué)者將磁盤分兩個分區(qū),分別是根分區(qū)和SWAP交換分區(qū)。2、Linux的內(nèi)核版本分為_穩(wěn)定版_和開發(fā)版,其版本號通常由3個數(shù)字組成,并表示為X、Y、Z的形式,X代表_主版本號_,Y代表_次版本號_,Z代表_末版本號_。其中,Y如果是偶數(shù),則代表這個內(nèi)核版本是_穩(wěn)定版_,可以公開發(fā)行。3、如果將硬盤接在第一個IDE接口的從硬盤上,在Linux系統(tǒng)中這個硬盤代號是_hdb_。這個硬盤第二個邏輯分區(qū)的代號是_hdb6_。4、在Windows與Linux并存的電腦中,安全刪除Lin
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度木材綜合利用技術(shù)研發(fā)合同樣本7篇
- 2025年加盟商店面維護(hù)協(xié)議
- 2025版巡游出租車特許經(jīng)營合同修訂版五3篇
- 2025版家居建材銷售合同終止與綠色環(huán)保認(rèn)證協(xié)議
- 2025年度船舶港口日常保潔與維護(hù)服務(wù)合同3篇
- 五氧化二釩項目評價分析報告
- 二零二五年度能源合同解除協(xié)議
- 二零二五年度出租車租賃合同司機休息區(qū)域與設(shè)施協(xié)議
- 二零二五年度海域使用權(quán)租賃及海洋資源綜合利用技術(shù)服務(wù)合同
- 二零二五年度股東變更后的董事會組成與授權(quán)協(xié)議
- 中國聯(lián)合網(wǎng)絡(luò)通信有限公司招聘筆試題庫2024
- 【社會工作介入精神障礙社區(qū)康復(fù)問題探究的文獻(xiàn)綜述5800字】
- 節(jié)前停工停產(chǎn)與節(jié)后復(fù)工復(fù)產(chǎn)安全注意事項課件
- 設(shè)備管理績效考核細(xì)則
- 中國人民銀行清算總中心直屬企業(yè)2023年招聘筆試上岸歷年典型考題與考點剖析附帶答案詳解
- (正式版)SJT 11449-2024 集中空調(diào)電子計費信息系統(tǒng)工程技術(shù)規(guī)范
- 人教版四年級上冊加減乘除四則混合運算300題及答案
- 合成生物學(xué)技術(shù)在生物制藥中的應(yīng)用
- 消化系統(tǒng)疾病的負(fù)性情緒與心理護(hù)理
- 高考語文文學(xué)類閱讀分類訓(xùn)練:戲劇類(含答案)
- 協(xié)會監(jiān)事會工作報告大全(12篇)
評論
0/150
提交評論