版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1.在Linux目錄結(jié)構(gòu)中目錄中的文件是普通用戶可以使用的可使用的可執(zhí)行文件的目錄是(B)19
A./sbinB./binC./usrD./lib
2.在Linux目錄結(jié)構(gòu)中Linux的內(nèi)核及引導(dǎo)程序所需要的文件位于(B)目錄
A/binB./bootC./rootD./proc
3.在Linux目錄結(jié)構(gòu)中用來存放系統(tǒng)配置文件(D)目錄
A./libB./devC./procD./etc
4.Linux三種特殊權(quán)限中僅用于目錄文件的權(quán)限是(C)22
A.SUIDB.SGIDC.黏滯位D.都可以
5.Linux三種權(quán)限中允許進(jìn)入目錄的權(quán)限(C)22
A.L可讀B.w-可寫C.x-可執(zhí)行D.都不是
6.下列腳本文件最先自動(dòng)執(zhí)行的是(A)24
A./etc/rc.localB./etc/profileC.~/.bashrcD.~/.bash_logout
7.下面通配符可匹配多個(gè)任意字符的通配符是(A)29
A.*B.?C.[abode]D.[!a-e]
8.輸出重定向符號(hào)右邊的文件已經(jīng)存在,不會(huì)覆蓋文件而是追加的定向符是(B)
A.>B.>>C.2>D.&>
9.表示用戶家目錄的是(B)
A./home(所有用戶家目錄的父目錄,+用戶名才是用戶家目錄)C..D.
10.可刪除非空目錄及其子目錄的命令是(B)
A.touchB.rm-rC.mkdirD.rmdir空目錄
11.是強(qiáng)引用的符號(hào)(A)
A.單引號(hào)B.反引號(hào)C.雙引號(hào)D.中括號(hào)
12.可顯示隱藏文件的1s命令形式選項(xiàng)是(A)
A.Is-aB.1s-dC.Is-hD.Is-1
13.可通過接受標(biāo)準(zhǔn)輸入作為輸出內(nèi)容來創(chuàng)建簡單文件的命令是(B)42
A.touchB.catC.viD.gedit
14.不帶有編輯功能但有翻頁、按行滾動(dòng)、搜索功能的命令是(B)43
A.catB.more和lessC.head和tailDvi
15.wc命令可統(tǒng)計(jì)文件的行數(shù)、字?jǐn)?shù)和字節(jié)數(shù)。在下列格式中只顯示文件的字?jǐn)?shù)的是(C)51
A.wcB.wc-cC.wc-wDwc-1
16.可實(shí)現(xiàn)文件重命名的命令是(B)52
A.cpB.mvC.InDrename
17.在Linux系統(tǒng)中可通過掛載將光盤、U盤或一個(gè)文件系統(tǒng)連接到主目錄樹的一個(gè)目錄節(jié)點(diǎn)。期中光盤或光盤鏡像
對(duì)應(yīng)的文件系統(tǒng)類型是(C)44
A.vfatB.ext3C.iso9660Dvboxsf
18.下面更改文件命令只能更改符號(hào)連接的目標(biāo)文件的權(quán)限的命令是(C)
A.chownB.chgrpC.chmodD.以上都不對(duì)
19.chmod命令的權(quán)限模式可使用字符串形式或八進(jìn)制形式,當(dāng)使用八進(jìn)制形式時(shí)模式應(yīng)由三或四位八進(jìn)制構(gòu)成,其
中從最高到最低位依次表示為(A)每個(gè)八進(jìn)制的三個(gè)二進(jìn)制位從高到低分別表示為有無讀、寫、執(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)制位從高到低分別表示為有無(A)
A.讀寫執(zhí)行B.寫讀執(zhí)行C.執(zhí)行讀寫D.執(zhí)行寫讀
21.運(yùn)行時(shí)不會(huì)創(chuàng)建子進(jìn)程的方式是(C)69
A.賦予shell程序文件可執(zhí)行權(quán)限,直接運(yùn)行shell程序(外部命令)
B.調(diào)用命令解釋器解釋執(zhí)行shell程序(Shell函數(shù))
C.使用source命令執(zhí)行shell程序(內(nèi)部命令)
D.用()將多條命令括起來而形成的復(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.$stabB.${#stab}C.${stab}Dunsetstab
25.Shell變量不需要預(yù)先定義,若對(duì)其進(jìn)行數(shù)值操作,可指定變量的屬性為整數(shù),具體命令為D
A.declare-a變量名B.declare-f變量名C.typeset-r變量名D.typeset-i變量名
26.Shell中可表示引用數(shù)組abrr中的所有非空元素的引用是(B)76
A.${abrr}B.${abrr[*]}C.${#abrr[*]D.${#abrr[@]}
27.在Shell變量引用操作符可實(shí)現(xiàn)字符串替換其中(C)用來測試如果變量stra存在且不為空,則返回為word,
否則返回為空串78
A.${stra:-word}B.${stra:=word}C.${stra:+word}D.${stra:?word)
28.在Shell變量引用操作符可實(shí)現(xiàn)字符串替換其中(D)用來測試,如果變量stra存在,則返回為變量stra的值,
否則輸出為word,并退出當(dāng)前腳本程序
A.${stra-word}B.${stra=word}C.${stra:+word}D.${stra:?word}
29.在Shell變量引用操作符可實(shí)現(xiàn)模式匹配替換其中(B)用來的含義是若pattern匹配變量stra的頭部,則刪
除最長匹配部分并返回剩余部分。
A.${straftpattern}B.${stra##pattern}C.${stra%pattern}D.${stra厥pattern}
30.為了使子進(jìn)程能繼承父進(jìn)程中定義的變量,就必須使(D)命令將這些變量送入進(jìn)程轉(zhuǎn)出區(qū)83
A.readB.setC.shiftD.export
31.使用(D)形式時(shí),即使表達(dá)式中有Shell的特殊字符時(shí),也不必用雙引號(hào)將其括起來。87
A.test表達(dá)式B.[表達(dá)式]C.let算術(shù)表達(dá)式D.((算術(shù)表達(dá)式))
32.使用(D)形式時(shí)可以返回算術(shù)表達(dá)式的確切值
A.test表達(dá)式B.let算術(shù)表達(dá)式C.((算術(shù)表達(dá)式))D.$((算術(shù)表達(dá)式))
33.gcc可以對(duì)編譯階段進(jìn)行控制,其中(B)選項(xiàng)規(guī)定編譯到匯編語言,不進(jìn)行其他操作。107
A._EB._SC._cD.~o
34.gcc可以對(duì)編譯階段進(jìn)行控制,其中(A)選項(xiàng)設(shè)定庫文件的路徑
A.-LpathB.TpathC.TlibraryD.-static
35.gcc可以對(duì)編譯階段進(jìn)行控制,其中(D)選項(xiàng)在可執(zhí)行文件中包含標(biāo)準(zhǔn)調(diào)試信息,供gdb進(jìn)行調(diào)試。
A.-WallB.-WerrorC.-wD.-g
36.在Linux底層文件訪問中的大多數(shù)操作都是圍繞文件描述符來展開的其中(A)函數(shù)是內(nèi)核向進(jìn)程返回一個(gè)文件
描述符為以后使用148
A.open()B.read()C.write()D.close()
37.最終文件權(quán)限取決于(D)
A.modeB.unmaskC.mode&unmaskD.mode&~unmask非掩碼
38.Lseek()中第三個(gè)參數(shù)的值為0表示(A)
A.文件開始位置B.文件讀寫指針當(dāng)前位置C.文件結(jié)束位置D.都不是
39.文件屬性讀取函數(shù)中,依據(jù)文件名且當(dāng)文件是一個(gè)符號(hào)鏈接時(shí)返回是鏈接所指向文件的信息的函數(shù)是(A)152
A.statB.IstatC.fstatD.都不是
40.利用文件屬性讀取函數(shù)獲取的st_mode進(jìn)行文件類型測試方法正確的是D
A.對(duì)成員stmode同文件類型掩碼進(jìn)行與運(yùn)算B.對(duì)成員stmode直接判斷
C.利用帶成員stjnode參數(shù)宏(用于文件類型判斷)定義D.A和C都可以
41.下列函數(shù)中可關(guān)閉文件的函數(shù)(A)
A.close()B.dup2()C.A和B都可以D.dup()
42.下列底層文件訪問函數(shù)中第一個(gè)參數(shù)是文件描述符的是(C)157
A.chmodB.IchownC.fchownD.chown
43.硬鏈接是(B)162
A.指向目標(biāo)文件的指針B.指向文件的索引節(jié)點(diǎn)
C.可跨越不同文件系統(tǒng)創(chuàng)建D.可通過symlinkO來創(chuàng)建
44.讀取鏈接readlink和刪除鏈接unlink操作對(duì)象是(C)163
A.都只對(duì)硬鏈接有效B.都對(duì)軟鏈接無效
B.讀取只對(duì)軟鏈接有效,刪除都兩種都有效D.讀取對(duì)兩種都有效,刪除只對(duì)軟鏈接有效。
45.目錄文件的讀取函數(shù)readdir()參數(shù)和返回值的含義()C167
A.參數(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)171
A.全緩沖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()中文件打開模式中要求文件必須存在的模式是(A)172
A.r和r+B.w和w+C.a和a+D.ab和wb
50.在函數(shù)fopen()中文件打開模式中不是可讀寫的方式打開文件模式是(D)
A.r+B.w+C.a+D.r
51.在打開函數(shù)中其中是在由指定的流上打開由路徑名指定的文件,其返回值為指向文件流指針,此函數(shù)用于將一
個(gè)指定的文件打開為一個(gè)預(yù)定義的標(biāo)準(zhǔn)流(C)
A.openB.fopenC.freopenD.fdopen
52.以下函數(shù)中表示從某流中讀取一個(gè)字符但該函數(shù)不帶參數(shù),表示從標(biāo)準(zhǔn)輸入流中讀字符的函數(shù)是(C)174
A.getsB.getcC.getcharD.fgec
53.當(dāng)?shù)竭_(dá)文件尾端或出錯(cuò)時(shí),字符讀取函數(shù)的返回值都是EOF,為進(jìn)一步確認(rèn)文件是否已到文件尾,應(yīng)當(dāng)通過(B)
函數(shù)來判斷。
A.ferrorB.feofC.cleanerrD.perror
54.在定位函數(shù)中,可直接將流的讀寫指針設(shè)置到文件的起始位置同時(shí)會(huì)將錯(cuò)誤指示器errn。清零的函數(shù)是()
rewind182無答案
A.ferrorB.feofC.clearerr174D.perror
55.下面關(guān)于ftell()函數(shù)成功調(diào)用說法不正確的是(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ù)輸出到指
定大小的字符緩沖區(qū)。(D)183
A.printfB.fprintfC.sprintfD.snprintf
57.格式化輸入可從標(biāo)準(zhǔn)輸入、指定文件及字符緩沖區(qū)讀取格式化數(shù)據(jù)。其中()函數(shù)是輸出到指定文件。(B)
A.printfB.fprintfC.sprintfD.snprintf
58.關(guān)于臨時(shí)文件不正確的是A186
A.可通過tmpnam()創(chuàng)建B.也可通過tmpfile()創(chuàng)建
C.程序結(jié)束時(shí)或關(guān)閉文件時(shí)自動(dòng)刪除D.調(diào)用tmpname次數(shù)有限制
59.下列是進(jìn)程的異常終止的是(D)193
A.從main中調(diào)用return返回B.調(diào)用exitC.調(diào)用_exitD.調(diào)用abort
60.不屬于非格式化標(biāo)準(zhǔn)I/O的是(C)
A.字符I/OB.行I/OC.列I/OD.塊I/O
61.關(guān)于exit()函數(shù)不正確的是(B)194
A.先清理后進(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/_exitC.從main返回D.收到一個(gè)系統(tǒng)終止信號(hào)
63.關(guān)于atexit函數(shù)正確的是(D)
A.一個(gè)進(jìn)程可登記超過32個(gè)函數(shù)B.函數(shù)登記的順序和調(diào)用順序相同
B.同一函數(shù)可登記多次,但調(diào)用一次
D.在顯示或隱式調(diào)用exit時(shí)則執(zhí)行這些登記的終止處理程序
64.非初始化數(shù)據(jù)段由exec賦初值常稱為(C)196
A.正文段B.數(shù)據(jù)段C.bss段D.堆
65.在存儲(chǔ)空間布局中從低地址到高地址依次分布為A
A.正文段一數(shù)據(jù)段-bss段一堆一棧B.棧一堆Tbss段T數(shù)據(jù)段T正文段
C.正文段T堆T棧一數(shù)據(jù)段Tbss段D.堆T正文段一數(shù)據(jù)段一bss段一棧
66.PID為0的交換進(jìn)程是(A)200
A.其他所有進(jìn)程的祖先進(jìn)程B.所有其他用戶進(jìn)程的祖先進(jìn)程
C.其他所有內(nèi)核線程的父進(jìn)程D.普通進(jìn)程
67.調(diào)用exec可能有變化的是(D)204
A.調(diào)用前后進(jìn)程IDB.調(diào)用exec前后實(shí)際用戶ID
C.調(diào)用exec前后實(shí)際組IDD.調(diào)用exec前后有效用戶ID和有效組ID
68當(dāng)waitpid函數(shù)的pid參數(shù)設(shè)置為(A)表示等待任一子進(jìn)程終止。211
A.pid==-lB.pid==OC.pid>0D.pid<-l
69.fork函數(shù)在父進(jìn)程中的返回值是(B)206
A.0B.創(chuàng)建的子進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào)C.-lD.1
70.fork函數(shù)在子進(jìn)程中的返回值是(A)
A.0B.創(chuàng)建的子進(jìn)程的進(jìn)程標(biāo)識(shí)號(hào)C.-lD.1
71.進(jìn)程可以忽略大部分信號(hào),但下列信號(hào)中(D)不能忽略213
A.SIGBORTB.SIGILLC.SIGQUITD.SIGKILL
72.調(diào)用exec函數(shù)會(huì)將原來設(shè)置為要捕獲的信號(hào)都更改為(A)214
A.默認(rèn)B.忽略C.另一捕獲D.默認(rèn)或忽略
73.可用于在不同主機(jī)的進(jìn)程間通信的技術(shù)是(D)225
A.管道B.共享內(nèi)存C.消息隊(duì)列D.套接字
74.只能在同源進(jìn)程間通信的技術(shù)(A)224
A.普通管道B.命名管道C.消息隊(duì)列D.共享內(nèi)存
75.不屬于SystemVIPC通信技術(shù)的是(A)
A.管道B.消息隊(duì)列C.信號(hào)量D.共享內(nèi)存
76.建立從父進(jìn)程到子進(jìn)程的管道的方法(B)225
A.父進(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ù)A
A.getenvB.putenvC.setenvD.unsetenv
77.文件系統(tǒng)保存在磁盤的B
A.引導(dǎo)塊B.超級(jí)塊C.i節(jié)點(diǎn)塊D.數(shù)據(jù)塊
78.Linux文件系統(tǒng)的根目錄的i節(jié)點(diǎn)號(hào)為C
A.0B.1C.2D.3
79.文件描述符的數(shù)據(jù)類型是B
A.charB.intC.doubleD.float
80.設(shè)置文件偏移量的系統(tǒng)調(diào)用是C
A.truncateB.syncC.IseekD.create
81.下面那個(gè)不是Iseek第三個(gè)參數(shù)的取值C
A.SEEK_SETB.SEEK_CURC.SEEK_N0WD.SEEK_END
82.可以使用(C)系統(tǒng)調(diào)用獲得符號(hào)鏈接所引用文件名稱
A.linkB.symlinkC.readlinkD.softlink
83.獲得工作路徑名稱的系統(tǒng)調(diào)用是A
A.getcwdB.getpwuidC.getgrgidD.getlogin
84.通過文件屬性中的Uid獲得文件擁有者名字的系統(tǒng)調(diào)用是B
A.getcwdB.getpwuidC.getgrgidD.getlogin
85.通過文件屬性中的gid獲得文件所屬組名字的系統(tǒng)調(diào)用是C
A.getcwdB.getpwuidC.getgrgidD.getlogin
86.根據(jù)文件路徑來改變文件權(quán)限使用系統(tǒng)調(diào)用是B
A.chownB.chmodC.fchmodD.fchown
一、填空題
1.Linux內(nèi)核與發(fā)行版的關(guān)系:LinuxKernel3.5.3是Linux內(nèi)核版,而Ubuntu12.04.1是Linux的發(fā)行版
2.Shell是linux系統(tǒng)的一種命令行用戶界面,提供了用戶與操作系統(tǒng)進(jìn)行交互的接口,本質(zhì)上是命令解釋器,可
為用戶提供個(gè)性化的使用環(huán)境。
3.在Shell中測試運(yùn)算有文件屬性測試、字符串測試、數(shù)值測試、邏輯運(yùn)算。
4.專門執(zhí)行整數(shù)算術(shù)運(yùn)算的命令let所指表達(dá)式可執(zhí)行C語言中常見的算術(shù)、邏輯、位運(yùn)算、比較運(yùn)算等。
5.Vi的三中工作模式:插入模式、命令模式、末行模式。
6.Gcc生成可執(zhí)行文件的四個(gè)步驟:預(yù)處理、編譯、匯編、鏈接。預(yù)處理是對(duì)源程序進(jìn)行頭文件加載和宏展開等操
作,由cpp完成;匯編一是產(chǎn)生匯編代碼,二是產(chǎn)生二進(jìn)制的目標(biāo)文件,由gcc使用as;生成的多.。文件和使用
到的庫文件鏈接成為可被操作系統(tǒng)執(zhí)行的可執(zhí)行程序,使用Id工具,可使用兩類庫文件。
7.庫分為靜態(tài)庫和共享庫。靜態(tài)庫由多個(gè).。文件組成的集合,文件成員沒有特殊的存在格式,使用“ar”可
維護(hù)和管理,庫文件后綴為“.a”;共享庫多個(gè).o文件由編譯器按照一定特殊的方式生成。多個(gè)可執(zhí)行程序可共享
庫文件的代碼段,但不共享數(shù)據(jù)。
8.命令行參數(shù)是main。函數(shù)的參數(shù)y
Main函數(shù)的參數(shù)若有兩個(gè)參數(shù)則第一個(gè)參數(shù)代表命令行參數(shù)個(gè)數(shù)、第二個(gè)參數(shù)代表指向各命令行參數(shù)字符串的指針
數(shù)組。
9.Linux中日期時(shí)間的表示方法有:算術(shù)類型、結(jié)構(gòu)體類型、字符串類型。
10.如果一個(gè)C程序的入口表示為main(intargc,char*argv口),編譯該程序后的可執(zhí)行程序?yàn)閍.out,那么
在命令"./a.out-ffoo”后,main中的參數(shù)argv[l]指向的字符串是CT")。
11.Linux系統(tǒng)下表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出的文件描述符(符號(hào)表示)分別為(STDINFILEN0、
STDOUTFILENO、STDERRFILENO),它們的值分別為0、1、2。
12.數(shù)字635表示的權(quán)限使用字母的方式表示為(rw—wxr-x)、使用符號(hào)方式表示為(SIRUSR|SIWUSR|SIWGRP
ISIXGRP|SIROTH|SIX0TH)。
13.系統(tǒng)調(diào)用open的功能是打開或創(chuàng)建文件。
14.使用open打開文件時(shí)有三個(gè)標(biāo)志必須要選擇其一,這三個(gè)標(biāo)志是0RDONLY、0WR0NLY、0RDWR。
15.文件偏移量代表下一次讀或?qū)懙奈恢谩?/p>
16.將文件偏移量市值為當(dāng)前偏移處之前的4個(gè)字節(jié)的維護(hù)使用Iseek(fd,(―4),(SEEKCUR))。
17.設(shè)置打開文件標(biāo)志(0TRUNC),可以截?cái)辔募椤?,使用系統(tǒng)調(diào)用(truncate)可以截?cái)辔募蛘呒娱L文件。
18.如果umask設(shè)置為022,則創(chuàng)建一個(gè)新文件夾(數(shù)字表示)的權(quán)限為(理省)、創(chuàng)建一個(gè)新目錄的權(quán)限為(遁)。
19.如果umask設(shè)置為024,則創(chuàng)建一個(gè)新文件夾(數(shù)字表示)的權(quán)限為(以2)、創(chuàng)建一個(gè)新目錄的權(quán)限為(遢)。
20.使用系統(tǒng)調(diào)用(電幽£)可以設(shè)置和得到文件模式的屏蔽字。
21.創(chuàng)建硬鏈接使用系統(tǒng)調(diào)用(3蟲),創(chuàng)建符號(hào)鏈接使用系統(tǒng)調(diào)用(symlink)。
22.獲得工作路徑名稱的系統(tǒng)調(diào)用是(getcwd)。
23.可以使用(stat或fstat或Istat)系統(tǒng)調(diào)用顯示文件屬性信息。
24.chmod,chown,utime都可以修改文件i節(jié)點(diǎn)信息,其中chmod的功能是(更改文件權(quán)限)、chown的功能是(更
改文件所有者和所屬組)、utime的功能是(更改文件訪問時(shí)間和修改時(shí)間)。
25.若實(shí)現(xiàn)將標(biāo)準(zhǔn)輸出重定向到文件描述符為6對(duì)應(yīng)的文件上,則應(yīng)使用語句(dup2(6,1))。
26.系統(tǒng)調(diào)用(Unlink)的作用是刪除目錄項(xiàng),這里的目錄項(xiàng)是指(文件名和文件i節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系)。
27.打開目錄使用(DIR*opendir(constchar*name))系統(tǒng)調(diào)用,關(guān)閉目錄使用(intclosedir(DIR*dir))
系統(tǒng)調(diào)用,讀取目錄內(nèi)容使用(structdirent*readdir(DIR*dir))系統(tǒng)調(diào)用。
28.chdir系統(tǒng)調(diào)用的功能是(改變當(dāng)前目錄)。
29.創(chuàng)建目錄使用(intmkdir(constchar"pathname,modetmode))系統(tǒng)調(diào)用、刪除目錄使用(intrmdir(const
char"pathname))系統(tǒng)調(diào)用。
30.popen函數(shù)實(shí)現(xiàn)的操作:創(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í)用戶
三、簡答題
1.系統(tǒng)調(diào)用、庫函數(shù)的區(qū)別和練習(xí)
從用戶角度觀察,系統(tǒng)調(diào)用和庫函數(shù)都以C函數(shù)形式出現(xiàn),提供給用戶一種功能實(shí)現(xiàn)的接口,需要用戶輸入指
定的參數(shù),調(diào)用結(jié)束得到指定的返回值。
從實(shí)現(xiàn)者角度觀察,庫函數(shù)是在系統(tǒng)調(diào)用上層的函數(shù),庫函數(shù)一般指程序員可以使用的通用函數(shù)。
系統(tǒng)調(diào)用由兩部分組成:
(1)核心函數(shù):是實(shí)現(xiàn)系統(tǒng)調(diào)用功能的代碼,作為操作系統(tǒng)的核心駐留在內(nèi)存中,是一種共享代碼。運(yùn)行在核心
,0、O
(2)接口函數(shù):是提供給應(yīng)用程序的API,以庫函數(shù)的形式存在于Linux的lib.a中,該庫中存放了所有系統(tǒng)調(diào)用
的接口函數(shù)的目標(biāo)代碼,用匯編語言書寫。其主要功能是把系統(tǒng)調(diào)用號(hào),入口參數(shù)地址傳給相應(yīng)的核心函數(shù),并使
用戶態(tài)下運(yùn)行的應(yīng)用程序陷入核心態(tài)。
4.完成如下命令
(1)新建用戶tom和用戶組student
ttuseraddtom
ttpasswdtom
ttgroupaddstudent
(2)新建文件file
fttouchfile
(3)將文件file改名為test,然后將test拷貝到/home
#mvfiletest
#cptest/home
(4)將/home/test文件的擁有著修改為tom,將文件所屬組該為student
ftchowntom:student/home/test
5.靜態(tài)庫和共享庫的區(qū)別
(1)靜態(tài)庫的代碼在編譯時(shí)就已連接到開發(fā)人員開發(fā)的應(yīng)用程序中。
(2)共享庫只是在程序開始運(yùn)行時(shí)才載入,在編譯時(shí),只是簡單地指定需要使用的庫函數(shù)。
(3)靜態(tài)庫文件以.a結(jié)尾,共享庫文件以.s。結(jié)尾。
6.Linux文件類型主要有哪七類?
常規(guī)文件、目錄文件、字符設(shè)備文件、塊設(shè)備文件、管道文件、鏈接文件、套接字文件
7.簡述文件、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)系叫做文件的硬鏈接,文件名和i節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系保存在目錄文件中。
8.什么是文件描述符?
(1)一個(gè)非負(fù)整數(shù),內(nè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)限
SIRUSR|SIWUSR|SIXUSR|SIRGRP|SIWGRP|SIXGRP|SIROTH|SIWOTH|SIXOTH
10.寫出open一下6種打開標(biāo)志:只讀、只寫、讀寫、追加、文件不存在創(chuàng)建、截?cái)酁?
O_RDONLY0_WR0NLYO_RDWR0_APPENDO_CREAT0_TRUNC
11.讀程序,寫出執(zhí)行結(jié)果并解釋得到該結(jié)果的原因
main()
(
intfdl,fd2;
fdl=open("/etc/passwd",O_RDONLY);
fd2=open("/etc/passwd”,0_RDWR);
printf("fdl=%d,fd2=%d\n”,fdl,fd2);
close(fdl);
close(fd2);
)
結(jié)果:fdl=3fd2=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ù)信息
前兩者如果遇到符號(hào)鏈接文件則會(huì)一直引用至非符號(hào)鏈接文件
Istat獲得符號(hào)鏈接文件本身的文件元數(shù)據(jù)信息
12.dup和dup2的區(qū)別和聯(lián)系
聯(lián)系:dup與dup2都用來將新文件描述符指向原來文件描述符指向的打開文件描述。
區(qū)別:dup返回的新文件描述符為最小可用的文件描述符,dup2返回的新文件描述符可以通過第二個(gè)參數(shù)指定。
13.硬鏈接和符號(hào)鏈接的區(qū)別
(1)命令
In原文件硬鏈接文件(不能對(duì)目錄創(chuàng)建硬鏈接)
In-s原文件/目錄符號(hào)鏈接文件
(2)是否新增文件:硬鏈接不增文件,符號(hào)鏈接增加文件。
(3)刪除原文件/目錄
硬鏈接:對(duì)應(yīng)i節(jié)點(diǎn)鏈接數(shù)T。
符號(hào)鏈接:符號(hào)鏈接文件失效。
(4)刪除鏈接文件
刪除硬鏈接文件,使對(duì)應(yīng)i節(jié)點(diǎn)的鏈接數(shù)-1。
刪除符號(hào)鏈接文件,對(duì)原文件/目錄無任何影響
(5)是否跨文件系統(tǒng):硬鏈接不可以,符號(hào)鏈接可以
14.fork與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ì)打印輸出嗎?為什么?
#include<stdio.h>
intmain()
printf("Runningpswithexeclp'n");
execlp(“ps","ps","-af”,0);
printf("Done!\n");
exit(0);
不會(huì)輸出“Done!”。
原因:
執(zhí)行execlp(“ps",“ps",“一旺”,0)調(diào)用成功后,當(dāng)前進(jìn)程的地址空間被新的程序ps所替代,將執(zhí)行“ps-af”
16.試寫出下列程序段的運(yùn)行結(jié)果,并解釋原因
intx=0,inty=0;
voidthreadl(void)
printf("Thisispthreadl.thesentencel\n");
y=7;
sleep(1);
printf("Thisispthreadl.thesentence2\n");
x=x+y;
)
voidthread2(void)
(
printf("Thisispthreadl.thesentencel\n");
x=4;
sleep(1);
printf("Thisispthreadl.thesentencel\n");
y=8+y;
voidmain(void)
pthreadtidl,id2;
pthreadcreate(&idl,NULL,(void*)threadl,NULL);
pthread_create(&id2,NULL,(void*)thread2,NULL);
pthread_join(idl,NULL);
pthread_join(id2,NULL);
printf(“x=%d,y=%d\n?,x,y);
)
答案:
Thisispthreadl.thesentense1
Thisispthread2.thesentense1
Thisispthreadl.thesentense2
Thisispthread2.thesentense2
x=ll,y=15
原因:
(1)線程1先運(yùn)行,線程2后運(yùn)行。
線程1執(zhí)行sleep(l);后阻塞,線程2繼續(xù)執(zhí)行,線程2執(zhí)行到sleep(1);時(shí)線程2阻塞,線程1阻塞結(jié)束繼續(xù)執(zhí)
行,線程1執(zhí)行結(jié)束后線程繼續(xù)執(zhí)行到結(jié)束。
(2)線程1和線程2共享進(jìn)程的數(shù)據(jù)段,因此共享變量x,y。
17.進(jìn)程間通信的六種方式是什么?簡述他們的通信原理?
(1)信號(hào):用于通知接收進(jìn)程有某種事件發(fā)生。
(2)管道:連接一個(gè)進(jìn)程的輸出至另一個(gè)進(jìn)程的輸入的一種方法。
(3)信號(hào)量:一個(gè)計(jì)數(shù)器,用來記錄對(duì)某個(gè)資源的使用情況。
(4)共享內(nèi)存:允許多個(gè)進(jìn)程訪問同一塊內(nèi)存空間。
(5)消息隊(duì)列:消息的鏈表,鏈表中每個(gè)節(jié)點(diǎn)包括消息類型和正文兩部分。
(6)套接字:在網(wǎng)絡(luò)上主機(jī)間進(jìn)程進(jìn)行通信的方式。
18.PIPE與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)生信號(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.說明信號(hào)傳遞的過程。
(1)生成(generating)。內(nèi)核要更新目標(biāo)進(jìn)程的數(shù)據(jù)結(jié)構(gòu),表示一個(gè)新的信號(hào)已經(jīng)被發(fā)送給此進(jìn)程。此時(shí),進(jìn)程
并沒有對(duì)信號(hào)做出任何響應(yīng)。
(2)傳遞(delivery)。強(qiáng)迫目標(biāo)進(jìn)程對(duì)信號(hào)做出響應(yīng)。
四、編程題
1.向文件fl中寫入“hell。world!”,然后再將fl中的內(nèi)容讀出并顯示在屏幕上。(注意必要的錯(cuò)誤判斷)
Winclude<unistd.h>
ttinclude<sys/stat.h>
Winclude<sys/fcntl.h>
intmain()
intfd;
charbuf1[13]={z'helloworld!”};
charbuf2[12];
intnum;
fd=open(〃fl〃,O_RDWR|O_CREAT|O_TRUNC,0644);
if(fd==-l)
(
perror(zzf1notopen");
exit(1);
}
num=write(fd,buf1,sizeof(buf1)-1);
if(num!=(sizeof(bufl)-l))
printf(z,writelessthanwant\n〃);
lseek(fd,0,SEEK_SET);
num=read(fd,buf2,12);
if(num!=12)
printf("readlessthan12\n〃);
write(1,buf2,12);
close(fd);
)
2.向文件f2中寫入“aabbccddee”,然后將偏移量移到絕對(duì)值偏移為4的位置處,讀6個(gè)字符,并將結(jié)果顯示在
屏幕上
ftinclude<unistd.h>
ttinclude<sys/stat.h>
^include<sys/fcntl.h>
intmain()
(
intfd;
charbuf1[ll]={〃aabbccddee〃};
charbuf2[10];
intnum;
fd=open(〃f2〃,0_RDWR|O_CREAT|0_TRUNC,0644);
if(fd=~l)
(
perror(z/f2notopen");
exit(1);
)
num=write(fd,buf1,sizeof(buf1)-1);
if(num!=(sizeof(buf1)-1))
printf(zzwritelessthanwant\n,z);
lseek(fd,4,SEEK_SET);
num=read(fd,buf2,6);
if(num!=6)
printf(/zreadlessthan6\n〃);
write(1,buf2,6);
close(fd);
}
3.向文件f3中寫入“aabbccddeeffgghh”,然后將文件截短后的文件內(nèi)容讀出并顯示在屏幕上
ftinclude<unistd.h>
ftinclude<sys/stat.h>
ftinclude<sys/fcntl.h>
intmain()
{
intfd;
charbuf1[17]={zzaabbccddeeffgghhzz};
charbuf2[8];
intnum;
fd=open(〃f3〃,0_RDWR|O_CREAT|O_TRUNC,0644);
if(fd==-l)
(
perror(zzf3notopen");
exit(1);
)
num=write(fd,buf1,sizeof(buf1)-1);
if(num!=(sizeof(buf1)-1))
printf(z,writelessthanwant\n〃);
lseek(fd,0,SEEK_SET);
ftruncate(fd,8);
num=read(fd,buf2,8);
if(num!=8)
printf(z/readlessthan8\n〃);
write(1,buf2,8);
close(fd);
}
4.實(shí)現(xiàn)“cat文件名”顯示文件內(nèi)容
#include<fcntl.h>
main(intargc,char*argv[])
{
intfd;
intnum;
charbuf[10];
if(argc!=2)
{
printf(zzmissfilename\n/z);
exit(1);
}
fd=open(argv[l],0_RD0NLY);
if(fd==-l)
{
perror(/zerroropen");
exit(1);
)
while((num=read(fd,buf,10))!=0)
write(1,buf,num);
close(fd);
5.實(shí)現(xiàn)“cp原文件目標(biāo)文件”
ftinclude<sys/stat.h>
ftinclude<fcntl.h>
main(intargc,char*argv[])
(
intfrom,to;
intnum;
charbuf[10];
if(argc!=3)
{
printf(/zargumenterror\n,z);
exit(1);
)
from=open(argv[1],0_RD0NLY);
to=open(argv[2],0_WR0NLY10_CREAT10_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,將字符串“helloworld"通過輸出重定向方式寫入文件fl中
#include<stdio.h>
#include<unistd.h>
ftinclude<fcntl.h>
#include<sys/stat.h>
ftinclude<sys/types.h>
main()
intfd;
if((fd=open("fl",0_WR0NLY10_CREAT,0644))=-l)
perror(zzopenfail");
if(dup2(fd,1)=-1)
perror(Z/Redirectfailed");
printf(z,Helloworld\n/z);
close(fd);
7.使用fork創(chuàng)建進(jìn)程,在子進(jìn)程中打印"Iamthechild”和子進(jìn)程pid,在父進(jìn)程中打印"Iamthefather”
和父進(jìn)程pid
^include<sys/types.h>
ftinclude<stdlib.h>
#include<stdio.h>
intmain()
pid_tpid;
pid=fork();
if(pid<0)
(
perror(zzforkzz);
exit(1);
)
elseif(pid==0)
printf(,ZIamthechild\n〃);
else
printf(/ZIamthefather\nz,);
exit(0);
}
8.創(chuàng)建子進(jìn)程,在子進(jìn)程中執(zhí)行“ps-A”命令,父進(jìn)程等待子進(jìn)程結(jié)束后打印“childover"
及所處理的子進(jìn)程進(jìn)程號(hào)
ftinclude<sys/types.h>
#include<stdlib.h>
main()
(
pidtpid,cpid;
inti;
char*args[64];
args[0]=,,ps”;
args[l]="-A”;
args[2]=NULL;
pid=fork();
if(pid<0)
(
perror(“fork");
exit(1);
)
elseif(pid==0)
{
execvp(args[0],args);
exit(0);
)
else
(
cpid=wait(NULL);
printf("childover!cpid=%d\n”,cpid);
)
9.編寫程序處理SIGINT信號(hào),當(dāng)程序接收到SIGINT信號(hào)后輸出"SIGINTiscaught"
ftinclude<stdio.h>
#include<signal.h>
voidsignal_handler(intsignum)
switch(signum)
caseSIGINT:
printf(,ZSIGINTiscaught!\n,z);
break;
)
)
intmain()
(
signal(SIGINT,signalhandler);
pause();
return0;
)
10.使用PIPE時(shí)限父子進(jìn)程向子進(jìn)程發(fā)送1234567890,子進(jìn)程接收并顯示
#include<sys/types.h>
ftinclude<stdio.h>
main()
(
intpfd[2];
charbuf[32];
pidtpid;
pipe(pfd);
if((pid=fork())<0)
perror("fork");
elseif(pid>0)
(
close(pfd[0]);
write(pfd[l],/z1234567890,z,11);
)
else
{
close(pfd[l]);
read(pfd[0],buf,11);
printf(,zchildread:%s\n〃,buf);
一、單項(xiàng)選擇題
1、Linux操作系統(tǒng)內(nèi)核創(chuàng)始人是(C)
A.BillGatesB.RichardStallman
C.LinusTorvaldsD.DennisM.Ritchie
2、以下哪種不是Linux的Shell類型(C)
A.bashB.kshC.rshD.csh
3、下面關(guān)于Shell的說法,不正確的是(B)。
A、一種命令語言解釋器B、一種和C類似的程序語言
C、操作系統(tǒng)的外殼D、用戶與Linux內(nèi)核之間的接口程序
4、hda3表示(B)。
A、IDEO接口上的從盤B、IDEO接口上主盤的第三個(gè)分區(qū)
C、IDEO接口上的第三個(gè)主分區(qū)D、IDEO接口上的第三個(gè)邏輯分區(qū)
5、一般情況下,Swap的大小建議是(C)。
A、50MB、100MC、內(nèi)存大小的2倍D、150M
6、Linux下的cd命令可以改變用戶的當(dāng)前目錄,當(dāng)用戶鍵入cd并按回車后,(A)。
A、當(dāng)前目錄改為用戶主目錄B、當(dāng)前目錄改為根目錄
C、當(dāng)前目錄沒有變D、當(dāng)前用戶改
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新世紀(jì)版選修6歷史下冊月考試卷含答案
- 2025年人民版必修3歷史下冊月考試卷含答案
- 2025年人教A新版九年級(jí)地理下冊階段測試試卷含答案
- 2025年滬科版八年級(jí)歷史下冊階段測試試卷含答案
- 2025年教科新版必修3生物下冊月考試卷含答案
- 2025年新科版選擇性必修3生物下冊階段測試試卷含答案
- 2025年湘師大新版選擇性必修1化學(xué)上冊月考試卷含答案
- 2025年滬科新版高三歷史上冊月考試卷含答案
- 美容院二零二五年度美容儀器研發(fā)與創(chuàng)新基金投資合同4篇
- 2025年度綠色生態(tài)門面房購置與生態(tài)旅游開發(fā)合同4篇
- 課題申報(bào)書:GenAI賦能新質(zhì)人才培養(yǎng)的生成式學(xué)習(xí)設(shè)計(jì)研究
- 駱駝祥子-(一)-劇本
- 全國醫(yī)院數(shù)量統(tǒng)計(jì)
- 《中國香文化》課件
- 2024年醫(yī)美行業(yè)社媒平臺(tái)人群趨勢洞察報(bào)告-醫(yī)美行業(yè)觀察星秀傳媒
- 第六次全國幽門螺桿菌感染處理共識(shí)報(bào)告-
- 天津市2023-2024學(xué)年七年級(jí)上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 經(jīng)濟(jì)學(xué)的思維方式(第13版)
- 盤錦市重點(diǎn)中學(xué)2024年中考英語全真模擬試卷含答案
- 湖北教育出版社四年級(jí)下冊信息技術(shù)教案
- 背景調(diào)查報(bào)告
評(píng)論
0/150
提交評(píng)論