2023年嵌入式linux應(yīng)用程序開發(fā)期末考試題庫及答案_第1頁
2023年嵌入式linux應(yīng)用程序開發(fā)期末考試題庫及答案_第2頁
2023年嵌入式linux應(yīng)用程序開發(fā)期末考試題庫及答案_第3頁
2023年嵌入式linux應(yīng)用程序開發(fā)期末考試題庫及答案_第4頁
2023年嵌入式linux應(yīng)用程序開發(fā)期末考試題庫及答案_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1下列哪一項不是嵌入式操作系統(tǒng)的特點DA、占有資源少 B、低成本 C、高可靠性 D、交互性2下列哪一項不是嵌入式系統(tǒng)的基本要素CA、嵌入性 B、專用性 C、通用性 D、計算機系統(tǒng)3現(xiàn)階段嵌入式系統(tǒng)發(fā)展的重要標志為DA、以單芯片為核心的可編程控制器 B、以嵌入式CPU為基礎(chǔ)、以簡樸操作系統(tǒng)為核心C、嵌入式操作系統(tǒng) D、Internet4下面哪項不是嵌入式系統(tǒng)的特點DA、面向特定應(yīng)用B、軟件一般都固化在存儲器芯片或單片機自身中,而不存儲于磁盤中C、代碼特別規(guī)定高質(zhì)量、高可靠性D、具有二次開發(fā)能力5下面哪項不是ARM解決器的特點DA、支持Thumb(16位)/ARM(32位)雙指令集B、兼容8位/16位器件C、指令長度固定 D、大量使用RAM,指令執(zhí)行速度更快6下面哪項不是ARM解決器的特點BA、大多數(shù)數(shù)據(jù)操作都在寄存器中完畢 B、采用CISC指令集C、尋址方式靈活簡樸,執(zhí)行效率高 D、體積小、低功耗、低成本、高性能7下面哪項不屬于ARM解決器模式AA、管理模式(root) B、用戶模式(usr)C、快速中斷模式(fiq) D、外部中斷模式(irq)8下面哪項為錯誤的說法AA、馮·諾依曼結(jié)構(gòu)共用數(shù)據(jù)存儲空間和程序存儲空間,不共享存儲器總線B、哈佛結(jié)構(gòu)有分離的數(shù)據(jù)和程序空間及分離的訪問總線C、哈佛結(jié)構(gòu)在指令執(zhí)行時,取址和取數(shù)可以進行并行操作D、哈佛結(jié)構(gòu)指令執(zhí)行時效率更高9采用下列哪項更有助于開發(fā)微型嵌入式應(yīng)用系統(tǒng)BA、腳本程序語言 B、C語言或匯編語言C、C++或SQL語言D、HTML或XML語言10下面哪項為一般嵌入式系統(tǒng)開發(fā)中不具有的環(huán)節(jié)BA、系統(tǒng)總體開發(fā) B、數(shù)據(jù)庫設(shè)計C、嵌入式硬件開發(fā)D、嵌入式軟件開發(fā)11在嵌入式系統(tǒng)開發(fā)過程中下面哪項為錯誤的說法BA、對于有些硬件和軟件都可以實現(xiàn)的功能,需要在成本和性能上做出抉擇B、對實時性規(guī)定非常高的產(chǎn)品可以選擇嵌入式Linux開發(fā)環(huán)境C、嵌入式系統(tǒng)的軟件開發(fā)與通常軟件開發(fā)的區(qū)別重要在于軟件實現(xiàn)部分D、嵌入式系統(tǒng)的軟件開發(fā)可分為交叉編譯和交叉調(diào)試兩部分12對于Linux操作系統(tǒng),下面哪項說法是錯誤的DA、是一種開源的操作系統(tǒng) B、提供了強大的應(yīng)用程序開發(fā)環(huán)境C、可以免費使用 D、不支持Sparc硬件平臺13使用命令chmod的數(shù)字設(shè)立,可以改變CA、文獻的訪問特權(quán) B、目錄的訪問特權(quán) C、文獻/目錄的訪問特權(quán)14修改文獻a.txt的權(quán)限,使每個用戶都可以讀取和寫入這個文獻,相應(yīng)命令為AA、chmod666a.txt B、chmod777a.txtC、chmod755a.txt D、chmod555a.txt15某文獻的組外成員的權(quán)限為只讀;所有者有所有權(quán)限;組內(nèi)的權(quán)限為讀與寫,則該文獻的權(quán)限為DA、467 B、674 C、476 D、76416系統(tǒng)中有用戶user1和user2,同屬于users組。在user1用戶目錄下有一文獻file1,它擁有644的權(quán)限,假如user2用戶想修改user1用戶目錄下的file1文獻,應(yīng)文獻擁有權(quán)限為BA、744 B、664 C、646 D、74617某文獻的權(quán)限是-rwxr--r--,則下面描述對的的是CA、文獻的權(quán)限值是755 B、文獻的所有者對文獻只有讀權(quán)限C、其他用戶對文獻只有讀權(quán)限 D、同組用戶對文獻只有寫權(quán)限18某文獻的原有權(quán)限是-rwxr--r--,執(zhí)行chmodo+x后文獻權(quán)限為BA、-rwxr-xr-x B、-rwxr--r-x C、-rwxr-xr-- D、-rw-r--r--19clear命令的作用是AA、清除終端窗口 B、關(guān)閉終端窗口 C、打開終端窗口 D、調(diào)整窗口大小20顯示當前目錄中的所有文獻,相應(yīng)命令為BA、ls B、ls-a C、ls-l21在Linux操作系統(tǒng)默認情況下,ls命令顯示的可執(zhí)行文獻顏色為AA、綠色 B、藍色 C、灰色 D、黃色22用命令顯示出文獻ff的描述為-rwxr-xr--1rootroot599cec1017:12ff,由此可知文獻ff的類型為AA、普通文獻 B、硬鏈接 C、目錄 D、符號鏈接23用命令列出下面的文獻列表,請問那一個文獻是符號鏈接文獻DA、-rw-------2hel-susers56Sep0911:05helloB、-rw-------2hel-susers56Sep0911:05goodbeyC、drwx------1helusers1024Sep1008:10zhangD、lrwx------1helusers2024Sep1208:12cheng24在Linux關(guān)機命令中,下列命令中無法實現(xiàn)關(guān)機的是BA、shutdown-hnow B、reboot C、halt25刪除文獻命令為DA、mkdir B、rmdir C、mv D、rm26對于tar.gz結(jié)尾的文獻,采用下面哪個命令進行解壓縮操作AA、tarxvzf B、tarjxvf C、tarczvf D、tarjcvf27對于tar.bz2結(jié)尾的文獻,采用下面哪個命令進行解壓縮操作BA、tarxvzf B、tarjxvf C、tarczvf D、tarjcvf28對于ln命令,下列哪項說法是不對的的CA、ln命令會保持每一處鏈接文獻的同步性 B、軟鏈接在用戶選定的位置上生成一個文獻的鏡像C、ln命令的鏈接文獻不會反復(fù)占用磁盤空間D、硬鏈接會在用戶選定的位置上生成一個和源文獻大小相同的文獻29在vi編輯器中執(zhí)行存盤退出的命令為DA、:q B、:sq C、:q! D、:wq30vi編輯器中不涉及下面哪種模式AA、編輯模式 B、命令行模式 C、插入模式 D、底行模式31使用vi編輯器環(huán)境時,使用:setnu顯示行號,使用下面哪項命令取消行號顯示BA、:setnuoff B、:setnonu C、:offnu D、:clsnu32在Linux內(nèi)核配置過程中,下面哪項命令采用的是基于圖形窗口模式的配置界面CA、makeconfig B、makemenuconfigC、makexconfig D、makeoldconfig33在Linux內(nèi)核配置過程中,下面哪項命令建立依賴關(guān)系CA、makeconfig B、makemenuconfig C、makedep D、makeclean34交叉編譯器中,下面哪項不是必需包含的DA、glibc B、gcc C、binutils D、tmake35內(nèi)核的編譯重要環(huán)節(jié)不涉及下面哪項DA、內(nèi)核配置 B、建立依存關(guān)系 C、建立內(nèi)核 D、加載內(nèi)核36內(nèi)核編譯時選項前的尖括號中可以是空,*,M,其中*表達CA、選項將編譯為模塊 B、不包含選項 C、包含選項37Bootloader的stage1階段重要完畢的工作不涉及下面哪項DA、基本的硬件初始化 B、為加載stage2準備RAM空間C、拷貝stage2到RAM中 D、用匯編語言跳轉(zhuǎn)到main入口函數(shù)38采用哪項運營級別為圖形用戶登錄Linux操作系統(tǒng)DA、0 B、1 C、3 D、539下面關(guān)于Linux系統(tǒng)服務(wù)的說法哪項是錯誤的BA、INIT進程的一個重要作用就是啟動Linux系統(tǒng)服務(wù)B、Linux的系統(tǒng)服務(wù)涉及獨立運營的系統(tǒng)服務(wù)和由用戶設(shè)定的服務(wù)C、xinet可以同時監(jiān)聽多個指定的端口 D、xinet可以看作一個啟動服務(wù)的管理服務(wù)器40下面關(guān)于Linux系統(tǒng)服務(wù)的說法哪項是錯誤的CA、獨立運營的系統(tǒng)服務(wù)的啟動腳本都放在目錄/etc/rc.d/init.d/中B、不同運營級別的腳本文獻目錄為/etc/rc.d/rcN.d,其中N相應(yīng)不用的運營級別C、不同運營級別的腳本文獻中每個相應(yīng)的服務(wù)都以“C”或“S”開頭,其中的C代表關(guān)閉,S代表啟動D、使用命令“service+系統(tǒng)服務(wù)+操作”實現(xiàn)對相應(yīng)服務(wù)操作41使用下面哪項命令查看系統(tǒng)的默認運營級別AA、Runlevel B、servicexinetdstatus C、chkconfig--list D、chkconfigxinetdstatus42下面哪種語言GCC編譯器不支持CA、C B、Java C、ASP D、C++43GCC的對的編譯流程為AA、預(yù)解決-編譯-匯編-鏈接 B、預(yù)解決-編譯-鏈接-匯編C、預(yù)解決-鏈接-編譯-匯編 D、編譯-預(yù)解決-匯編-鏈接44下面哪項關(guān)于GCC編譯過程的說法是錯誤的DA、編譯階段GCC要檢查代碼規(guī)范性、是否有語法錯誤等,擬定代碼的實際要做的工作B、匯編階段是把編譯階段生成的.s文獻轉(zhuǎn)成目的文獻C、預(yù)解決階段,GCC編譯器將代碼中包含的頭文獻編譯進來D、GCC在編譯時默認使用靜態(tài)庫45如需GCC提供編譯過程中所有有用的報警信息,則在編譯時應(yīng)加入選項BA、-w B、-Wall C、-werror D、-error46下面哪些與GDB相關(guān)的說法是錯誤的BA、GDB能調(diào)試可執(zhí)行文獻 B、GDB能調(diào)試源代碼C、GDB對編譯過程有規(guī)定 D、GDB支持交叉調(diào)試47在GDB調(diào)試過程中,使用下面哪項命令設(shè)立斷點,其中m代表行號AA、bm B、cm C、nm D、sm48一個進程啟動時打開3個文獻中不涉及DA、標準輸入 B、標準輸出 C、標準犯錯解決 D、系統(tǒng)日記服務(wù)49一般情況下,STDIN_FILENO相應(yīng)的文獻描述符為BA、-1 B、0 C、1 D、250一般情況下,STDERR_FILENO相應(yīng)的文獻描述符為DA、-1 B、0 C、1 D、251不帶緩存的文獻I/O操作函數(shù)不涉及AA、fopen B、read C、write D、open52open函數(shù)原型中的O_RDWR標志表達文獻打開方式為CA、只讀方式打開文獻 B、可寫方式打開文獻 C、讀寫方式打開文獻D、以添加方式打開文獻,在打開文獻的同時,文獻指針指向文獻末尾53open函數(shù)調(diào)用錯誤時,函數(shù)返回值為AA、-1 B、0 C、1 D、254在Linux操作系統(tǒng)中,串口設(shè)備的設(shè)備名一般為CA、com1 B、port1 C、ttyS0 D、serl155串口參數(shù)重要通過設(shè)立structtermios結(jié)構(gòu)體的各成員值來實現(xiàn),下面哪項不是各成員值支持的設(shè)立方式CA、與 B、或 C、賦值56串口參數(shù)重要通過設(shè)立structtermios結(jié)構(gòu)體的各成員值來實現(xiàn),下面哪項實現(xiàn)設(shè)立波特率參數(shù)BA、newtio.c_cflag|=115200 B、cfsetispeed(&newtio,B115200)C、options.c_cflag|=B115200 D、newtio.c_cflag=~CS11520057當流緩沖涉及一個終端時,標準I/O典型地使用下面哪項緩沖方式BA、全緩沖 B、行緩沖 C、無緩沖 D、幀緩沖58標準犯錯stderr產(chǎn)生時,標準I/O典型地使用下面哪項緩沖方式CA、全緩沖 B、行緩沖 C、無緩沖 D、幀緩沖59使用fopen函數(shù)時,必需包含的頭文獻文獻為AA、stdio.h B、stdlib.h C、errno.h D、fcntl.h60下面哪項是對進程概念的錯誤描述DA、進程是一個獨立的可調(diào)度的活動B、進程是一個抽象實體,當它執(zhí)行某個任務(wù)時,將要分派和釋放各種資源C、進程是可以并行執(zhí)行的計算部分 D、進程是保存在磁盤上的指令的有序集合61下面哪項對進程的描述是錯誤的AA、進程是一個靜態(tài)態(tài)的概念 B、進程涉及動態(tài)創(chuàng)建、調(diào)度和消亡的整個過程。C、進程是程序執(zhí)行和資源管理的最小單位D、當用戶在系統(tǒng)中鍵入命令執(zhí)行一個程序的時候,它將啟動一個進程62下面哪項對進程控制塊的描述是錯誤的DA、進程控制塊包含進程的描述信息 B、進程控制塊包含進程的控制信息C、進程控制塊包含進程的資源信息 D、進程控制塊是進程的一個靜態(tài)描述63下面哪項對進程標記的描述是錯誤的BA、PID惟一地標記一個進程 B、PPID惟一地標記一個進程C、PID是非零的正整數(shù) D、PPID是非零的正整數(shù)64下面哪項對Linux操作系統(tǒng)下進程的模式描述是錯誤的CA、用戶程序執(zhí)行過程中出現(xiàn)系統(tǒng)調(diào)用或者發(fā)生中斷事件,進程模式就變成內(nèi)核模式B、內(nèi)核模式下運營的進程可以執(zhí)行機器的特權(quán)指令C、root用戶可干擾內(nèi)核模式下進程的運營 D、內(nèi)核模式下運營的進程不受用戶的干擾65進程的三種狀態(tài)為CA、準備態(tài)、執(zhí)行態(tài)和退出態(tài) B、精確態(tài)、模糊態(tài)和隨機態(tài)C、運營態(tài)、就緒態(tài)和等待態(tài) D、手工態(tài)、自動態(tài)和自由66下面哪項不是Linux操作系統(tǒng)下常見的進程調(diào)度命令CA、bg B、kill C、open D、ps67下面哪項對Linux操作系統(tǒng)下fork函數(shù)的描述是錯誤的DA、fork函數(shù)執(zhí)行一次返回兩個值 B、新進程稱為子進程,而原進程稱為父進程C、父進程返回值為子進程的進程號 D、子進程返回值為父進程的進程號68下面哪項對Linux操作系統(tǒng)下exit()和_exit()函數(shù)的描述是錯誤的CA、_exit()函數(shù)的作用是直接使進程停止運營,清除其使用的內(nèi)存空間,并清除其在內(nèi)核中的各種數(shù)據(jù)結(jié)構(gòu)B、exit()函數(shù)在調(diào)用exit退出系統(tǒng)之前要檢查文獻的打開情況C、exit()函數(shù)直接將進程關(guān)閉,此時緩沖區(qū)中的數(shù)據(jù)將會丟失D、想保證數(shù)據(jù)的完整性,就一定要使用exit()函數(shù)。69下面哪項對Linux操作系統(tǒng)下wait和waitpid函數(shù)的描述是錯誤的DA、wait函數(shù)用于使父進程(即調(diào)用wait的進程)阻塞,直到一個子進程結(jié)束或者該進程接到了一個指定的信號為止B、wait函數(shù)調(diào)用時,假如該父進程沒有子進程或者他的子進程已經(jīng)結(jié)束,則wait就會立即返回。C、waitpid函數(shù)用于使父進程(即調(diào)用wait的進程)阻塞并可提供一個非阻塞版本的wait功能D、waitpid函數(shù)不支持作業(yè)控制70編寫守護進程的第一步為AA、創(chuàng)建子進程,父進程退出 B、在子進程中創(chuàng)建新會話C、改變當前目錄為根目錄 D、關(guān)閉文獻描述符71下面哪項對Linux操作系統(tǒng)下setsid函數(shù)的描述是錯誤的DA、用于創(chuàng)建一個新的會話,并擔任該會話組的組長 B、讓進程擺脫原會話的控制C、讓進程擺脫原進程組的控制 D、讓進程擺脫init進程的控制72TCP/IP協(xié)議模型中不涉及下面哪項AA、物理層 B、網(wǎng)絡(luò)接口層 C、網(wǎng)絡(luò)層 D、傳輸層73在關(guān)于TCP/UDP的描述中,下面哪項是錯誤的CA、TCP數(shù)據(jù)傳輸實現(xiàn)了從一個應(yīng)用程序到另一個應(yīng)用程序的數(shù)據(jù)傳遞B、TCP對話通過三次握手來完畢初始化C、UDP即用戶數(shù)據(jù)報協(xié)議是一種面向連接的協(xié)議D、一個UDP應(yīng)用可同時作為應(yīng)用的客戶或服務(wù)器方74常見的socket類型中不涉及下面哪項CA、SOCK_STREAM B、SOCK_DGRAM C、SOCK_DTRAN D、SOCK_RAW75在關(guān)于ICMP協(xié)議的描述中,下面哪項是錯誤的BA、ICMP是IP層的一個協(xié)議B、ICMP報文的最終報宿是報宿計算機上的一個用戶進程C、當一個帶有錯誤信息的ICMP報文到達時,由IP軟件模塊負責解決D、每種ICMP報文都有不同的格式76在關(guān)于設(shè)備驅(qū)動的描述中,下面哪項是錯誤的DA、操作系統(tǒng)通過各種驅(qū)動程序來駕馭硬件設(shè)備B、操作系統(tǒng)為硬件提供統(tǒng)一的操作方式C、操作系統(tǒng)最基本的組成部分是硬件驅(qū)動程序D、常見的驅(qū)動程序作為內(nèi)核模塊動態(tài)加載,比如聲卡驅(qū)動、網(wǎng)卡驅(qū)動、CPU、PCI總線等77在關(guān)于模塊相關(guān)命令的描述中,下面哪項是錯誤的DA、lsmod列出當前系統(tǒng)中加載的模塊 B、rmmod用于將當前模塊卸載C、cpmod用于將模塊復(fù)制到用戶空間 D、insmod用于加載當前模塊78在關(guān)于設(shè)備驅(qū)動程序的描述中,下面哪項是錯誤的DA、Linux設(shè)備驅(qū)動程序包含中斷解決程序和設(shè)備服務(wù)子程序兩部分B、設(shè)備控制器需要獲得系統(tǒng)服務(wù)時采用查詢和中斷兩種方式C、設(shè)備服務(wù)子程序包含了所有與設(shè)備操作相關(guān)的解決代碼D、設(shè)備服務(wù)子程序?qū)υO(shè)備控制器執(zhí)行操作,不接受用戶命令79Linux設(shè)備驅(qū)動程序與外界的接口不涉及下面哪項。BA、驅(qū)動程序與操作系統(tǒng)內(nèi)核的接口 B、驅(qū)動程序與用戶的接口C、驅(qū)動程序與設(shè)備的接口 D、驅(qū)動程序與系統(tǒng)引導(dǎo)的接口80打開設(shè)備的接口函數(shù)是open,通常情況下在open函數(shù)中要完畢的工作中不涉及下面哪項DA、遞增計數(shù)器 B、檢查特定設(shè)備的特殊情況 C、初始化設(shè)備 D、釋放設(shè)備81在關(guān)于內(nèi)存分派函數(shù)的描述中,下面哪項是錯誤的BA、kmalloc函數(shù)開辟的內(nèi)存基于內(nèi)存地址 B、kmalloc函數(shù)申請空間無大小限制C、kmalloc函數(shù)不會對所獲取的內(nèi)存空間清零D、kmalloc函數(shù)返回物理地址82鍵盤模式中不涉及下面哪項CA、ASCIImode(XLATE)模式模式 B、Keycodemode(MEDIUMRAW)模式C、Multimode(MULTI)模式 D、Scancodemode(RAW)模式83鍵盤相關(guān)碼表中不涉及下面哪項CA、掃描碼 B、鍵盤碼 C、擴展碼 D、Keymap表84open函數(shù)的原型函數(shù)為說明AA、intopen(constchar*pathname,flags,intperms)B、ssize_topen(intfd,void*buf,size_tcount)C、FILE*open(constchar*path,constchar*mode)D、off_topen(intfd,off_toffset,intwhence)85read函數(shù)的原型函數(shù)為說明BA、intread(constchar*pathname,flags,intperms)B、ssize_tread(intfd,void*buf,size_tcount)C、FILE*read(constchar*path,constchar*mode)D、off_tread(intfd,off_toffset,intwhence)86lseek函數(shù)的原型函數(shù)為說明DA、intlseek(constchar*pathname,flags,intperms)B、ssize_tlseek(intfd,void*buf,size_tcount)C、FILE*lseek(constchar*path,constchar*mode)D、off_tlseek(intfd,off_toffset,intwhence)87fcntl函數(shù)的原型函數(shù)為說明BA、intfcntl(constchar*pathname,flags,intperms)B、intfcnt1(intfd,intcmd,structflock*lock)C、FILE*fcntl(constchar*path,constchar*mode)D、intfcntl(intnumfds,fd_set*readfds,fd_set*writefds,fd_set*exeptfds,structtimeval*timeout)88select函數(shù)的原型函數(shù)為說明BA、intselect(constchar*pathname,flags,intperms)B、intselect(intfd,intcmd,structflock*lock)C、FILE*select(constchar*path,constchar*mode)D、intselect(intnumfds,fd_set*readfds,fd_set*writefds,fd_set*exeptfds,structtimeval*timeout)89fopen的原型函數(shù)為AA、FILE*fopen(constchar*path,constchar*mode)B、intfopen(FILE*stream)C、size_tfopen(void*ptr,size_tsize,size_tnmemb,FILE*stream)D、size_tfopen(constvoid*ptr,size_tsize,size_tnmemb,FILE*stream)90socket函數(shù)的函數(shù)原型是AA、intsocket(intfamily,inttype,intprotocol)B、intsocket(intsockfd,structsockaddr*my_addr,intaddrlen)C、intsocket(intsockfd,intbacklog)D、intsocket(intsockfd,structsockaddr*serv_addr,intaddrlen)(√)RAM的訪問速度比較快,但掉電后數(shù)據(jù)會丟失。(√)ROM掉電后數(shù)據(jù)不會丟失。(×)人們通常所說的內(nèi)存即指系統(tǒng)中的ROM。(√)SRAM運用雙穩(wěn)態(tài)觸發(fā)器保存信息,只要不掉電,信息不會丟失。(×)DRAM是運用MOS(金屬氧化物半導(dǎo)體)電容存儲電荷來儲存信息,可不通過充電來維持信息。(√)Flash具有和ROM同樣掉電不會丟失的特性,因此被稱為FlashROM。(√)ARM7解決器采用3級流水線設(shè)計。(×)ARM9解決器采用3級流水線設(shè)計。(×)ARM7解決器采用哈佛結(jié)構(gòu)。(√)ARM9解決器采用哈佛結(jié)構(gòu)。(√)嵌入式軟件開發(fā)一般采用“宿主機-目的機”開發(fā)模式。(×)一般把進行交叉編譯的主機稱為目的機。(×)一般把程序?qū)嶋H的運營環(huán)境稱為宿主機。(√)嵌入式系統(tǒng)的軟件開發(fā)與通常軟件開發(fā)的區(qū)別重要在于軟件實現(xiàn)部分。(√)在Linux操作系統(tǒng)安裝過程中可進行網(wǎng)絡(luò)配置。(×)Linux操作系統(tǒng)不可以與MS-DOS、Windows等其它操作系統(tǒng)共存于同一臺機器上。(×)Linux操作系統(tǒng)重要的系統(tǒng)配置文獻重要存放在/var/目錄。(×)在Linux操作系統(tǒng)下,目錄結(jié)構(gòu)屬于分區(qū)。(√)在Linux操作系統(tǒng)下,文獻系統(tǒng)是一個文獻樹。(√)可以采用圖形化登錄和虛擬控制臺登錄兩種方式登錄Linux系統(tǒng)。(√)shell是一個命令解釋器。(√)可以在shell提醒下或圖形方式下創(chuàng)建用戶帳號。(√)Shell是命令語言、命令解釋程序及程序設(shè)計語言的統(tǒng)稱。(×)Shell擁有自己內(nèi)建的命令集,不能被系統(tǒng)中其他應(yīng)用程序所調(diào)用。(√)Shell是一種Linux操作系統(tǒng)中的命令行解釋程序。(×)rm命令可刪除文獻或目錄,其重要差別就是是否使用遞歸開關(guān)-f。(√)mv命令可以移動文獻和目錄,還可認為文獻和目錄重新命名。(×)cp命令可以復(fù)制文獻和目錄,但是不可認為文獻和目錄重新命名。(×)在Linux操作系統(tǒng)中,使用ipconfig查看和配置網(wǎng)絡(luò)接口的地址和參數(shù)。(√)在Linux操作系統(tǒng)中,使用ifconfig配置的網(wǎng)絡(luò)設(shè)備參數(shù)不需重啟就可生效。(√)在Linux操作系統(tǒng)中,使用ifconfig配置的網(wǎng)絡(luò)設(shè)備參數(shù)在系統(tǒng)重新啟動以后將會失效。(√)在Linux操作系統(tǒng)中使用ping測試計算機和網(wǎng)絡(luò)上的其他計算機是否連通。(√)Bootloader是在操作系統(tǒng)內(nèi)核運營之前運營的一段程序。(√)由于Bootloader嚴重依賴于硬件實現(xiàn),嵌入式系統(tǒng)中沒有一個通用的Bootloader。(√)雖然Bootloader嚴重依賴于硬件實現(xiàn),但是Bootloader的設(shè)計與實現(xiàn)有一些通用的概念。(×)Bootloader僅依賴于CPU的體系結(jié)構(gòu),不依賴于具體的嵌入式板級設(shè)備配置。(√)大多數(shù)Bootloader都包含“啟動加載”和“下載”兩種不同操作模式。(×)Bootloader啟動流程一般可分為stage1、stage2、stage3三個階段。(√)Linux內(nèi)核中不同的目錄結(jié)構(gòu)里都有相應(yīng)的Makefile。(√)U-Boot源碼結(jié)構(gòu)和Linux內(nèi)核源碼結(jié)構(gòu)非常類似。(×)Bootloader設(shè)計與實現(xiàn)過程中不推薦使用C語言。(√)FTP內(nèi)部命令中使用close命令中斷與遠程服務(wù)器的FTP會話。(√)FTP內(nèi)部命令中使用exit命令退出FTP會話過程。(×)FTP內(nèi)部命令中使用mkdir命令在本地主機中建一目錄。(√)FTP內(nèi)部命令中使用dir命令顯示遠程主機中的文獻和目錄信息。(×)FTP內(nèi)部命令中使用pwd命令顯示本地主機的當前程徑。(√)FTP內(nèi)部命令中使用lcd命令顯示本地主機的當前程徑。(√)用戶可通過進程控制相關(guān)的系統(tǒng)調(diào)用來創(chuàng)建進程、實現(xiàn)進程調(diào)度、進程管理等。(×)用戶進程允許訪問內(nèi)核數(shù)據(jù),可以使用內(nèi)核函數(shù)。(√)系統(tǒng)調(diào)用規(guī)定用戶進程進入內(nèi)核空間的具體位置。(√)用戶程序可以通過系統(tǒng)調(diào)用獲得操作系統(tǒng)內(nèi)核提供的服務(wù)。(√)Linux系統(tǒng)調(diào)用編程接口重要通過C庫實現(xiàn)。(√)一個API函數(shù)通常需要幾個系統(tǒng)調(diào)用來共同完畢函數(shù)的功能,但是尚有一些API函數(shù)不需要調(diào)用相應(yīng)的系統(tǒng)調(diào)用。(√)Linux用戶編程接口(API)遵循POSIX標準。(√)系統(tǒng)命令相對API更高一層,它的內(nèi)部引用用戶編程接口(API)來實現(xiàn)相應(yīng)的功能。(√)標準I/O提供流緩沖的目的是盡也許減少使用read和write調(diào)用的數(shù)量。(×)標準I/O提供3種類型的緩沖存儲類型,涉及全緩沖,行緩沖和幀緩沖。(√)并行通信傳輸速度快,合用于短距離通信,但規(guī)定傳輸速度較高的應(yīng)用場合。(×)用戶常見的數(shù)據(jù)通信的基本方式可分為網(wǎng)絡(luò)通信與串行通信兩種。(√)串行通信通信線路簡樸,成本低,合用于遠距離通信,但傳輸速度慢的應(yīng)用場合。(×)對文獻的操作使用文獻描述符進行,對設(shè)備的操作使用設(shè)備描述符進行。(×)Linux中的文獻重要分為4種:普通文獻、目錄文獻、鏈接文獻和可執(zhí)行文獻。(√)當一個進程終止時,它所有已打開的文獻都由內(nèi)核自動關(guān)閉。(√)文獻是Linux操作系統(tǒng)中最常見最基礎(chǔ)的操作對象。(√)進程是系統(tǒng)的基本調(diào)度單位。(√)進程是一個程序的一次執(zhí)行的過程。(×)進程通過文獻描述符來描述。(×)Linux操作系統(tǒng)中調(diào)用函數(shù)getpid獲得當前進程的PID和PPID。(×)在Linux操作系統(tǒng)中,進程的執(zhí)行模式劃分為用戶模式和root模式。(√)Linux操作系統(tǒng)中創(chuàng)建一個新進程的唯一方法是使用fork函數(shù)。(√)fork函數(shù)使用多少次就創(chuàng)建多少個進程。(√)exec函數(shù)族就提供了一個在進程中啟動另一個程序執(zhí)行的方法。(√)當程序執(zhí)行到exit或_exit時,進程會無條件地停止剩下的所有操作,清除涉及PCB在內(nèi)的各種數(shù)據(jù)結(jié)構(gòu),并終止本進程的運營。(√)wait函數(shù)是waitpid函數(shù)的一個特例,在Linux操作系統(tǒng)內(nèi)部實現(xiàn)wait函數(shù)時直接調(diào)用的就是waitpid函數(shù)。(√)守護進程,即通常所說的Daemon進程,是Linux操作系統(tǒng)中的后臺服務(wù)進程。(√)守護進程的生存期較長。(×)守護進程經(jīng)常在終端打開時啟動,在終端關(guān)閉時終止。(√)Linux系統(tǒng)有很多守護進程,大多數(shù)服務(wù)都通過守護進程實現(xiàn)。(×)在Linux系統(tǒng)中,每一個系統(tǒng)與用戶進行交流的界面稱為圖形用戶界面。(√)每一個從終端開始運營的進程都會依附于這個終端,這個終端就稱為這些進程的控制終端,當控制終端被關(guān)閉時,相應(yīng)的進程都會自動關(guān)閉。(√)守護進程不由于用戶或終端或其他的變化而受影響。(√)會話組是一個或多個進程組的集合。(√)一個會話通常開始于用戶登錄,終止于用戶退出,在此期間該用戶運營的所有進程都屬于這個會話期。(√)syslog是Linux操作系統(tǒng)中的系統(tǒng)日記管理服務(wù),通過守護進程syslogd來維護。(√)在Linux系統(tǒng)中,每當系統(tǒng)發(fā)現(xiàn)一個孤兒進程,就會自動由init進程收養(yǎng)它。(×)守護進程中用printf輸出的字符可以在終端上顯示出來。(√)OSI協(xié)議參考模型是基于國際標準化組織(ISO)的建議發(fā)展起來的,從上到下共分為7層。(×)TCP/IP協(xié)議模型將TCP/IP的7層協(xié)議模型簡化為3層。(√)TCP/IP協(xié)議模型是一個龐大的協(xié)議族。(×)ping命令是基于TCP協(xié)議的。(×)TCP協(xié)議和UDP協(xié)議都是處在網(wǎng)絡(luò)層的協(xié)議。(√)socket接口是一種特殊的I/O,也是一種文獻描述符。(√)有時將內(nèi)核模塊也稱做驅(qū)動程序,因此,加載驅(qū)動時就是加載內(nèi)核模塊。(√)mknod用于創(chuàng)建相關(guān)模塊。(×)insmod可以根據(jù)模塊間依存關(guān)系以及/etc/modules.conf文獻中的內(nèi)容自動插入模塊。(√)設(shè)備通常在/dev下面存在一個相應(yīng)的邏輯設(shè)備節(jié)點,這個節(jié)點以文獻的形式存在。(√)設(shè)備文獻(即設(shè)備節(jié)點)可通過mknod命令來創(chuàng)建,其中指定了主設(shè)備號和次設(shè)備號。(×)大多設(shè)備以查詢方式向設(shè)備驅(qū)動程序發(fā)出輸入/輸出請求。(√)設(shè)備驅(qū)動程序是內(nèi)核的一部分,假如驅(qū)動程序犯錯,則也許導(dǎo)致系統(tǒng)崩潰。(√)設(shè)備驅(qū)動程序必須為內(nèi)核或者其子系統(tǒng)提供一個標準接口。(√)設(shè)備驅(qū)動程序使用一些標準的內(nèi)核服務(wù)(×)設(shè)備驅(qū)動開發(fā)時模塊在調(diào)用insmod命令時被加載,此時的入口點是main函數(shù)。(√)模塊在調(diào)用insmod命令時被加載,通常在init_module函數(shù)中完畢設(shè)備注冊。(×)內(nèi)核空間使用printk和printf函數(shù)實現(xiàn)信息打印。(√)proc偽文獻系統(tǒng)讓用戶可以和內(nèi)核內(nèi)部數(shù)據(jù)結(jié)構(gòu)進行交互,獲取有關(guān)進程的有用信息。(×)proc存在于內(nèi)存和硬盤上。(√)塊設(shè)備驅(qū)動程序涉及一個request請求隊列。(√)Linux操作系統(tǒng)頂層運營的GUI系統(tǒng)兼容X標準的XFree86系統(tǒng)。(√)Qt使用單一的API進行跨平臺的編程。(√)GUI是指計算機與其使用者之間的對話接口。(×)Qt/E基于一個X服務(wù)器或是Xlib庫。(√)Qt的核心機制是信號和插槽。1.嵌入式的英文為__EMBEDDED___。2.Linux操作系統(tǒng)下的程序開發(fā)一般均遵守___GPL___協(xié)議。3.Linux內(nèi)核版本號格式是x.y.zz-www,數(shù)字x代表版本類型,數(shù)字y為__偶數(shù)__時是穩(wěn)定版本。4.Linux內(nèi)核版本號格式是x.y.zz-www,數(shù)字x代表版本類型,數(shù)字y為__奇數(shù)__時是開發(fā)版本。5.Linux操作系統(tǒng)的文獻系統(tǒng)是一個__文獻樹___。6.Linux常見的默認文獻系統(tǒng)為__EXT3__。7.Linux中把DOS中采用的FAT文獻系統(tǒng)(涉及FAT12,F(xiàn)AT16和FAT32)稱為_VFAT_文獻系統(tǒng)。8.硬盤可分為主分區(qū)、擴展分區(qū)、__邏輯分區(qū)__。9.Linux系統(tǒng)中具有超級權(quán)限的用戶稱為_ROOT__用戶。10.Linux下與設(shè)備相關(guān)的文獻一般都在/__DEV__目錄下。11.Linux對目錄和設(shè)備都當作_文獻___來進行解決。12.將分區(qū)與目錄相相應(yīng)的過程叫做__掛載__。13.塊設(shè)備文獻是指數(shù)據(jù)的讀寫以__塊__為單位的設(shè)備。14.Linux中文獻屬性第一個字符“d”表達_目錄___文獻。15.Linux下軟驅(qū)、光驅(qū)、硬盤的掛載點一般位于/_MNT__目錄下。16.服務(wù)的日記信息一般位于/_VAR__目錄下。17.Linux中添加用戶賬號的命令為__USERADD__。18.Linux中顯示當前系統(tǒng)中由該用戶運營的進程列表的命令為__PS__。19.Linux中改變工作目錄的命令為_CD__。20.Linux中建立符號鏈接的命令為__LN__。21.Linux中對目錄進行打包的命令為_TAR___。22.Linux中顯示網(wǎng)絡(luò)連接、路由表和網(wǎng)絡(luò)接口信息命令為__NETSTAT__。23.FTP內(nèi)部命令中使用__LCD__切換本地工作目錄。24.Linux中最常用的編譯器是__GCC__編譯器。25.vi有3種模式,分別為命令行模式、插入模式及_底行___模式。26.編輯器按功能可以分為_行___編輯器和全屏幕編輯器兩大類。27.gdb對__可執(zhí)行__文獻進行調(diào)試。28.工程管理器make讀入的配置文獻為__MAKEFILE__。29.工程管理器make定義了_隱式___規(guī)則和模式規(guī)則。30.ARM解決器支持__THUMB__(16位)/ARM(32位)雙指令集。31.ARM解決器支持16位/__8__位器件。32.大端格式中,數(shù)據(jù)的高字節(jié)存儲在__低__地址中。33.小端格式中,數(shù)據(jù)的高字節(jié)存儲在_高_地址中。34.ARM7解決器采用_3_級流水線設(shè)計。35.嵌入式軟件開發(fā)所采用的編譯過程為__交叉__編譯。36.在嵌入式軟件開發(fā)中,將程序?qū)嶋H的運營環(huán)境稱為_目的___機。37.__JTAG__標準所采用的重要技術(shù)為邊界掃描技術(shù)。38.arm-linux-gcc交叉編譯工具重要涉及binutils、__GCC__、glibc等軟件。39.API即__用戶編程接口__。40.API遵循UNIX中的應(yīng)用編程界面標準_POSIX___。41.操作系統(tǒng)提供應(yīng)用戶程序調(diào)用的一組“特殊”接口稱為__系統(tǒng)調(diào)用__。42.進行系統(tǒng)調(diào)用時,程序運營空間需要從用戶空間進入__內(nèi)核__空間,解決完后再返回到用戶空間。43.系統(tǒng)調(diào)用編程接口重要通過C庫(_LIBC___)實現(xiàn)。44.一個進程啟動時,通常都會打開__3__個文獻。45.不帶緩存的文獻I/O操作,重要用到的5個函數(shù)為open、close、read、write和__LSEEK__。46.fopen函數(shù)返回一個__指針__。47._并行___通信是指運用多條數(shù)據(jù)傳輸線將一個資料的各位同時傳送。48.在Linux中,實現(xiàn)文獻上鎖的函數(shù)有l(wèi)ock和_FCNTL___。49.Linux中最常見最基礎(chǔ)的操作對象是_文獻___。50.當用戶在系統(tǒng)中鍵入命令執(zhí)行一個程序的時候,它將啟動一個_進程___。51.系統(tǒng)調(diào)度的單位__進程__。52._進程控制塊_包含了進程的描述信息、控制信息以及資源信息,它是進程的一個靜態(tài)描述。53.進程執(zhí)行態(tài)說明該進程正在執(zhí)行,即進程正在占用__CPU__。54.Linux系統(tǒng)是一個__多___進程的系統(tǒng)。55.Daemon進程即通常所說的_守護___進程,是Linux中的后臺服務(wù)進程。。56.在Linux中使用_FORK___函數(shù)創(chuàng)建一個新進程。57.fork函數(shù)調(diào)用后出現(xiàn)父進程與子進程,其中_子進程___的返回值為0。58.__EXEC__函數(shù)族就提供了一個在進程中啟動另一個程序執(zhí)行的方法。59.exit()函數(shù)與_exit()函數(shù)最大的區(qū)別就在于__EXIT()__函數(shù)在exit系統(tǒng)調(diào)用之前要檢查文獻的打開情況,并將文獻緩沖區(qū)中的內(nèi)容寫回文獻。60._WAIT_函數(shù)是用于使父進程阻塞,直到一個子進程結(jié)束或者該進程接到了一個指定的信號為止。61.在Linux中,所有的孤兒進程自動由__INIT__進程收養(yǎng)。62._SETSID___函數(shù)用于創(chuàng)建一個新的會話,并擔任該會話組的組長。63.系統(tǒng)日記文獻位于/__VAR/LOG__目錄下。64.TCP/IP的協(xié)議參考模型涉及網(wǎng)絡(luò)接口層、_網(wǎng)絡(luò)層___、傳輸層和應(yīng)用層。65.TCP為協(xié)議參考模型包中_傳輸___層的協(xié)議。66.__TCP__對話通過三次握手來完畢初始化。67.對數(shù)據(jù)規(guī)定高可靠性的應(yīng)用應(yīng)選擇__TCP__協(xié)議。68.Linux中的網(wǎng)絡(luò)編程通過__SOCKET__接口來進行。69.SOCK_DGRAM為__數(shù)據(jù)報__套接字。70.在實驗中,實驗平臺采用的CPU為Intel__XSCALL__解決器。71.在內(nèi)核更新與加載實驗中,設(shè)立的串口波特率為__115200__。72.在內(nèi)核更新與加載實驗中,設(shè)立的串口數(shù)據(jù)位為__8__。73.在內(nèi)核更新與加載實驗中,設(shè)立的數(shù)據(jù)流控制為__無__。74.在內(nèi)核更新與加載實驗中,設(shè)立的數(shù)據(jù)停止位為__1__。75.在內(nèi)核更新與加載實驗中,實驗平臺上使用的串口為COM__1__。76.在內(nèi)核更新與加載實驗中,內(nèi)核映像的后綴部分為__ZIMAGE__。77.在內(nèi)核更新與加載實驗中,通過__USB__將內(nèi)核映像下載到實驗平臺。78.壓縮的內(nèi)核映像通常名為__ZIMAGE__。79.未壓縮的內(nèi)核映像通常名為__VMLINUX__。80.操作系統(tǒng)內(nèi)核運營之前運營的一段程序稱為__BOOTLOADER__。程序設(shè)計選擇題1.下面的程序?qū)崿F(xiàn)對字符串倒序輸出。請選出應(yīng)填寫在空白處的選項。intdisplay1(char*string){printf("Theoriginalstringis%s\n",string);}intdisplay2(char*string1){char*string2;intsize,i;size=strlen(string1);string2=(char*)malloc(size+1);for(i=0;i<size;i++)____A______;string2[size+1]='';printf("Thestringafterwardis%s\n",string2);}intmain(){charstring[]="test";display1(string);display2(string);}A、string2[size-i-1]=string1[i] B、string2[size-i]=string1[i]C、string2[size-i+1]=string1[i] D、string2[size-i]=string1[i+1]2.下面的程序打開一個文獻,并設(shè)立該文獻權(quán)限為0666。請選出應(yīng)填寫在空白處的選項。intmain(void){intfd;if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_WRONLY,0666))<0){perror("open:");exit(1);}else{printf("Openfile:hello.c%d\n",fd);}if(____D____){perror("close:");exit(1);}elseprintf("Closehello.c\n");exit(0);}A、open(fd)>0 B、open(fd)<0 C、close(fd)>0 D、close(fd)<03.下面的程序打開一個文獻,寫入字符串“Hello!I'mwritingtothisfile!”,使用lseek函數(shù)將文獻指針移到文獻開始處,并讀出10個字節(jié)并將其打印出來。請選出應(yīng)填寫在空白處的選項。intmain(void){inti,fd,size,len;char*buf="Hello!I'mwritingtothisfile!";charbuf_r[10];len=strlen(buf);if((fd=open("/tmp/hello.c",O_CREAT|O_TRUNC|O_RDWR,0666))<0){perror("open:");exit(1);}elseprintf("openfile:hello.c%d\n",fd);if((size=write(fd,buf,len))<0){perror("write:");exit(1);}elseprintf("Write:%s\n",buf);lseek(_____C_____);if((size=read(fd,buf_r,10))<0){perror("read:");exit(1);}elseprintf("readformfile:%s\n",buf_r);if(close(fd)<0){perror("close:");exit(1);}elseprintf("Closehello.c\n");exit(0);}A、fd,0,SEEK_CUR B、fd,0,SEEK_END C、fd,0,SEEK_SET4.下面的程序說明文獻記錄鎖函數(shù)。一方面給flock結(jié)構(gòu)體的相應(yīng)位賦相應(yīng)值,接著使用兩次fcntl函數(shù)分別用于給相關(guān)文獻上鎖和判斷文獻是否可以上鎖,這里用到的cmd值分別為F_SETLK和F_GETLK。請選出應(yīng)填寫在空白處的選項。voidlock_set(intfd,inttype){structflocklock;lock.l_whence=SEEK_SET;lock.l_start=0;lock.l_len=0;while(1){lock.l_type=type;if(____B____){if(lock.l_type==F_RDLCK)printf("readlocksetby%d\n",getpid());elseif(lock.l_type==F_WRLCK)printf("writelocksetby%d\n",getpid());elseif(lock.l_type==F_UNLCK)printf("releaselockby%d\n",getpid());return;}fcntl(fd,F_GETLK,&lock);if(lock.l_type!=F_UNLCK){if(lock.l_type==F_RDLCK)printf("readlockalreadysetby%d\n",lock.l_pid);elseif(lock.l_type==F_WRLCK)printf("writelockalreadysetby%d\n",lock.l_pid);getchar();}}}A、(fcntl(fd,F_SETLK,&lock))<0 B、(fcntl(fd,F_SETLK,&lock))==0C、(fcntl(fd,F_SETLK,&lock))>05.下面的程序測試文獻的寫入鎖。一方面創(chuàng)建hello文獻,之后對其上寫入鎖,最后釋放寫入鎖。請選出應(yīng)填寫在空白處的選項。intmain(void){intfd;fd=open("hello",O_RDWR|O_CREAT,0666);if(fd<0){perror("open");exit(1);}_____B_____;getchar();lock_set(fd,F_UNLCK);getchar();close(fd);exit(0);}voidlock_set(intfd,inttype){structflocklock;lock.l_whence=SEEK_SET;lock.l_start=0;lock.l_len=0;while(1){lock.l_type=type;if((fcntl(fd,F_SETLK,&lock))==0){if(lock.l_type==F_RDLCK)printf("readlocksetby%d\n",getpid());elseif(lock.l_type==F_WRLCK)printf("writelocksetby%d\n",getpid());elseif(lock.l_type==F_UNLCK)printf("releaselockby%d\n",getpid());return;}fcntl(fd,F_GETLK,&lock);if(lock.l_type!=F_UNLCK){if(lock.l_type==F_RDLCK)printf("readlockalreadysetby%d\n",lock.l_pid);elseif(lock.l_type==F_WRLCK)printf("writelockalreadysetby%d\n",lock.l_pid);getchar();}}}A、lock_set(fd,F_RDLCK) B、lock_set(fd,F_WRLCK)C、lock_set(fd,O_RDONLY) D、lock_set(fd,O_WRONLY)6.下面的程序測試文獻的讀取鎖。一方面創(chuàng)建hello文獻,之后對其上讀取鎖,最后釋放讀取鎖。請選出應(yīng)填寫在空白處的選項。intmain(void){intfd;fd=open("hello",O_RDWR|O_CREAT,0666);if(fd<0){perror("open");exit(1);}____A_____;getchar();lock_set(fd,F_UNLCK);getchar();close(fd);exit(0);}voidlock_set(intfd,inttype){structflocklock;lock.l_whence=SEEK_SET;lock.l_start=0;lock.l_len=0;while(1){lock.l_type=type;if((fcntl(fd,F_SETLK,&lock))==0){if(lock.l_type==F_RDLCK)printf("readlocksetby%d\n",getpid());elseif(lock.l_type==F_WRLCK)printf("writelocksetby%d\n",getpid());elseif(lock.l_type==F_UNLCK)printf("releaselockby%d\n",getpid());return;}fcntl(fd,F_GETLK,&lock);if(lock.l_type!=F_UNLCK){if(lock.l_type==F_RDLCK)printf("readlockalreadysetby%d\n",lock.l_pid);elseif(lock.l_type==F_WRLCK)printf("writelockalreadysetby%d\n",lock.l_pid);getchar();}}}A、lock_set(fd,F_RDLCK) B、lock_set(fd,F_WRLCK)C、lock_set(fd,O_RDONLY) D、lock_set(fd,O_WRONLY)7.下面的程序打開一個文獻,寫入字符串并讀出。請選出應(yīng)填寫在空白處的選項。intmain(){FILE*stream;chars[3]={'a','b','c'};stream=fopen("what","w");i=fwrite(___D___);printf("i=%d",i);fclose(stream);}A、s,sizeof(char),nmemb,stream B、s,char,nmemb,fdC、s,sizeof(char),nmemb,FILE D、s,char,nmemb,FILE8.下面的程序獲得當前進程的PID。請選出應(yīng)填寫在空白處的選項。intmain(){printf("ThePIDofthisprocessis%d\n",_____A_____);}A、getpid() B、getppid() C、open(fd,pid) D、fopen(stream,pid)9.下面的程序判斷fork函數(shù)返回值的情況。請選出應(yīng)填寫在空白處的選項。intmain(void){pid_tresult;____A____;if(result==-1){perror("fork");exit;}elseif(result==0){printf("Thereturnvalueis%d\nInchildprocess!!\nMyPIDis%d\n",result,getpid());}else{printf("Thereturnvalueis%d\nInfatherprocess!!\nMyPIDis%d\n",result,getpid());}}A、result=fork() B、result=fork(-1) C、result=fork(0) D、result=fork(1)10.下面的程序判斷fork函數(shù)返回值的情況。請選出應(yīng)填寫在空白處的選項。intmain(void){pid_tresult;result=fork();if(result==-1){perror("fork");exit;}elseif(____D_____){printf("Thereturnvalueis%d\nInfatherprocess!!\nMyPIDis%d\n",result,getpid());}else{printf("Thereturnvalueis%d\nInchildprocess!!\nMyPIDis%d\n",result,getpid());}}A、result<0 B、result==0 C、result>0 D、result!==011.下面的程序?qū)h(huán)境變量添加到新建的子進程中去,這里的“env”是查看當前進程環(huán)境變量的命令使用使用完整的文獻目錄來查找相應(yīng)的可執(zhí)行文獻。請選出應(yīng)填寫在空白處的選項。intmain(){/*命令參數(shù)列表,必須以NULL結(jié)尾*/char*arg[]={"env",NULL};char*envp[]={"PATH=/tmp","USER=sunq",NULL};if(fork()==0){if(___D____("/bin/env",arg,,envp)<0)perror("error!");}}A、execl B、execle C、execlp D、execve12.下面的程序使用文獻名的方式來查找可執(zhí)行文獻,同時使用參數(shù)列表的方式。請選出應(yīng)填寫在空白處的選項。intmain(){if(fork()==0){/*此處相稱于調(diào)用“ps-ef”命令*/if(_____C_____("ps","ps","-ef",NULL)<0)perror("error!");}}A、execl B、execle C、execlp D、execve13.下面的程序使用使用完整的文獻目錄來查找相應(yīng)的可執(zhí)行文獻,同時使用參數(shù)列表的方式。請選出應(yīng)填寫在空白處的選項。intmain(){if(fork()==0){/*注意此處已給出ps命令所在的完整途徑*/if(_____A____("/bin/ps","ps","-ef",NULL)<0)perror("error!");}}A、execl B、execle C、execlp D、execve14.下面的程序?qū)h(huán)境變量添加到新建的子進程中去,這里的“env”是查看當前進程環(huán)境變量的命令使用使用完整的文獻目錄來查找相應(yīng)的可執(zhí)行文獻,同時使用參數(shù)列表的方式。請選出應(yīng)填寫在空白處的選項。intmain(){char*envp[]={"PATH=/tmp","USER=sunq",NULL};if(fork()==0){/*注意此處已給出env命令的完整途徑*/if(____B____("/bin/env","env",NULL,envp)<0)perror("error!");}}A、execl B、execle C、execlp D、execve15.下面的程序為服務(wù)器端應(yīng)用程序,一方面建立起socket,然后調(diào)用本地端口進行綁定,接著開始與客戶端建立聯(lián)系,并接受客戶端發(fā)送的消息。請選出應(yīng)填寫在空白處的選項。#defineSERVPORT3333#defineBACKLOG10#defineMAX_CONNECTED_NO10#defineMAXDATASIZE5intmain(){structsockaddr_inserver_sockaddr,client_sockaddr;intsin_size,recvbytes;intsockfd,client_fd;charbuf[MAXDATASIZE];/*建立socket連接*/if(____A_____){perror("socket");exit(1);}printf("socketsuccess!,sockfd=%d\n",sockfd);/*設(shè)立sockaddr_in結(jié)構(gòu)體中相關(guān)參數(shù)*/server_sockaddr.sin_family=AF_INET;server_sockaddr.sin_port=htons(SERVPORT);server_sockaddr.sin_addr.s_addr=INADDR_ANY;bzero(&(server_sockaddr.sin_zero),8);/*綁定函數(shù)bind*/if(bind(sockfd,(structsockaddr*)&server_sockaddr,sizeof(structsockaddr))==-1){perror("bind");exit(1);}printf("bindsuccess!\n");/*調(diào)用listen函數(shù)*/if(listen(sockfd,BACKLOG)==-1){perror("listen");exit(1);}printf("listening....\n");/*調(diào)用accept函數(shù),等待客戶端的連接*/if((client_fd=accept(sockfd,(structsockaddr*)&client_sockaddr,&sin_size))==-1){perror("accept");exit(1);}/*調(diào)用recv函數(shù)接受客戶端的請求*/if((recvbytes=recv(client_fd,buf,MAXDATASIZE,0))==-1){perror("recv");exit(1);}printf("receivedaconnection:%s\n",buf);close(sockfd);}A、(sockfd=socket(AF_INET,SOCK_STREAM,0))==-1B、(sockfd=socket(AF_INET,SOCK_STREAM,0))==0C、(sockfd=socket(AF_INET,SOCK_STREAM,-1))==-1D、(sockfd=socket(AF_INET,SOCK_STREAM,-1))==016.hello.c和hello.h位于同一目錄下,源代碼如下所示。/*hello.c*/intmain(){printf("Helloeveryone!\n");}/*hello.h*/#include<stdio.h>規(guī)定編寫Makefile文獻實現(xiàn)對這兩個文獻的編譯,Makefile文獻如下所示。請選出應(yīng)填寫在空白處的選項。/*Makefile*/hello:hello.chello.h____B______A、gcchello.c&hello.h-ohello B、gcchello.chello.h-ohelloC、makehello.c&hello.h-ohello D、makehello.chello.h-ohello17.下面的程序為客戶器端應(yīng)用程序,客戶端在建立起socket之后調(diào)用connect函數(shù)來建立連接。請選出應(yīng)填寫在空白處的選項。#defineSERVPORT3333#defineMAXDATASIZE100main(intargc,char*argv[]){intsockfd,sendbytes;charbuf[MAXDATASIZE];structhostent*host;structsockaddr_inserv_addr;if(argc<2){fprintf(stderr,"Pleaseentertheserver'shostname!\n");exit(1);}/*地址解析函數(shù)*/if((host=gethostbyname(argv[1]))==NULL){perror("gethostbyname");exit(1);}/*創(chuàng)建socket*/if(_____B_____){perror("socket");exit(1);}/*設(shè)立sockaddr_in結(jié)構(gòu)體中相關(guān)參數(shù)*/serv_addr.sin_family=AF_INET;serv_addr.sin_port=htons(SERVPORT);serv_addr.sin_addr=*((structin_addr*)host->h_addr);bzero(&(serv_addr.sin_zero),8);/*調(diào)用connect函數(shù)積極發(fā)起對服務(wù)器端的連接*/if(connect(sockfd,(structsockaddr*)&serv_addr,sizeof(structsockaddr))==-1){perror("connect");exit(1);}/*發(fā)送消息給服務(wù)器端*/if((sendbytes=send(sockfd,"hello",5,0))==-1){perror("send");exit(1);}close(sockfd);}A、(sockfd=socket(AF_INET,SOCK_STREAM,0))==0B、(sockfd=socket(AF_INET,SOCK_STREAM,0))==-1C、(sockfd=socket(AF_INET,SOCK_STREAM,-1))==0D、(sockfd=socket(AF_INET,SOCK_STREAM,-1))==-118.下面的程序一方面新建一子進程,然后讓其子進程暫停5s。接下來對原有的父進程使用阻塞函數(shù),并使用參數(shù)使該父進程不會阻塞。若有子進程退出,則阻塞函數(shù)返回子進程號;若沒有子進程退出,則阻塞函數(shù)返回0,并且父進程每隔一秒循環(huán)判斷一次。請選出應(yīng)填寫在空白處的選項。intmain(){pid_tpc,pr;____A____;if(pc<0)printf("Error\n");/*子進程*/elseif(pc==0){/*子進程暫停5s*/sleep(5);/*子進程正常退出*/exit(0);}/*父進程*/else{/*循環(huán)測試子進程是否退出*/do{/*調(diào)用waitpid,且父進程不阻塞*/pr=waitpid(pc,NULL,WNOHANG);/*若子進程尚未退出,則父進程暫停1s*/if(pr==0){printf("Thechildprocesshasnotexited\n");sleep(1);}}while(pr==0);/*若發(fā)現(xiàn)子進程退出,打印出相應(yīng)情況*/if(pr==pc)printf("Getchild%d\n",pr);elseprintf("someerroroccured.\n");}}A、pc=fork() B、pc=open(pr) C、pc=pr D、pr=pc19.下面的程序一方面新建一子進程,然后讓其子進程暫停5

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論