




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
千里之行,始于足下讓知識(shí)帶有溫度。第第2頁(yè)/共2頁(yè)精品文檔推薦嵌入式操作系統(tǒng)應(yīng)用開(kāi)發(fā)復(fù)習(xí)題及復(fù)習(xí)資料1、簡(jiǎn)述Linux操作系統(tǒng)具有的特點(diǎn)。
答:開(kāi)放的源代碼,良好的兼容性,完備的協(xié)助手冊(cè)頁(yè),優(yōu)秀的網(wǎng)絡(luò)支持
支持多用戶多任務(wù)多處理器
支持多種文件系統(tǒng),獨(dú)特的掛載方式確保數(shù)據(jù)的平安性
將應(yīng)用程序的核心實(shí)現(xiàn)為庫(kù),可重用性良好
采納模塊化分層的程序設(shè)計(jì)辦法,牢靠易維護(hù)
將設(shè)備等一切都看做是文件,提供統(tǒng)一的文件操作接口對(duì)設(shè)備等舉行操作
2、解釋POSIX。
答:POSIX表示可移植操作系統(tǒng)接口,可以提高UNIX環(huán)境下應(yīng)用程序的可移植性。POSIX標(biāo)準(zhǔn)定義了標(biāo)準(zhǔn)的API,只要是符合這一標(biāo)準(zhǔn)的應(yīng)用程序,就能夠在多種操作系統(tǒng)中運(yùn)行。
3、解釋通用公共許可證GPL。
答:GPL保證軟件對(duì)全部用戶來(lái)說(shuō)是自由的。遵循GPL的軟件提供應(yīng)用戶時(shí)必需提供源碼,一旦用戶得到遵循GPL的軟件,就能夠?qū)ζ潆S意地改寫,修改之后假如要提供應(yīng)其他人也必需遵循GPL,并開(kāi)放源碼,允許被修改。
4、Linux系統(tǒng)下,常用的在線協(xié)助文件有哪些?
答:1、man手冊(cè)2、info手冊(cè)3、How-To文件。
5、Linux系統(tǒng)下舉行C程序開(kāi)發(fā)的主要兩個(gè)標(biāo)準(zhǔn)。
答:1、ANSIC標(biāo)準(zhǔn)2、POSIX標(biāo)準(zhǔn)。
6、普通Linux系統(tǒng)調(diào)用函數(shù),假如執(zhí)行勝利將返回什么值?假如執(zhí)行失敗將返回什么值?并對(duì)哪個(gè)系統(tǒng)全局變量舉行賦值,以指示詳細(xì)的錯(cuò)誤狀況。
答:勝利時(shí)返回為0,不勝利時(shí)普通返回-1,也可能返回一些非0值。失敗時(shí)將會(huì)在全局變量errno中賦值指示錯(cuò)誤類型
7、畫(huà)出Linux函數(shù)庫(kù)調(diào)用和系統(tǒng)調(diào)用的暗示圖,容易說(shuō)明系統(tǒng)調(diào)用(API)函數(shù)的作用。
答:
應(yīng)用程序
庫(kù)函數(shù)
系統(tǒng)調(diào)用
內(nèi)核硬件設(shè)備
API是操作系統(tǒng)和用戶程序之間的接口,應(yīng)用程序通過(guò)API與操作系統(tǒng)舉行通信,使用操作系統(tǒng)提供的服務(wù)。API同時(shí)保證了操作系統(tǒng)數(shù)據(jù)和程序的平安性。
因此,API提供應(yīng)用戶平安地使用操作系統(tǒng)提供的服務(wù)。
8、容易說(shuō)明在Linux程序開(kāi)發(fā)過(guò)程中,利用GCC工具將C語(yǔ)言程序編譯成一個(gè)可執(zhí)行程序文件的四
個(gè)步驟。
答:1、預(yù)處理2、編譯3、匯編4、銜接
9、解釋gcc工具的o、c、I、L、l等5個(gè)參數(shù)的功能作用。
答:o:把文件輸出到output_,c:只編譯,不銜接I:L:在庫(kù)文件的搜尋路徑列表中添加dirname名目l:-ofile指定輸出文件為file
-c預(yù)處理,編譯,匯編源文件,但是不做銜接,產(chǎn)生.o(OBJ)文件
-Idirname在頭文件的搜尋路徑列表中添加dirname名目
-Ldirname在“-I”的搜尋名目中添加dirname名目,在銜接庫(kù)文件時(shí)候使用
-lname假如一個(gè)庫(kù)文件的名稱為“l(fā)ibname.a”,程序執(zhí)行時(shí)若要銜接這個(gè)庫(kù)文件,就要使用該選項(xiàng)舉行銜接,省略庫(kù)名中的前綴“l(fā)ib”和后綴“.a”
10、可執(zhí)行程序文件在存儲(chǔ)時(shí)(沒(méi)有調(diào)入到內(nèi)存)分為幾部分,說(shuō)明各段的主要內(nèi)容。
答:1、可執(zhí)行代碼區(qū)(text):存放CPU執(zhí)行的機(jī)器指令。2、已初始化數(shù)據(jù)區(qū)(data):包含了在程序中已經(jīng)被初始化的全局變量和靜態(tài)變量。3、未初始化數(shù)據(jù)區(qū)(bss):未初始化的全局變量和靜態(tài)變量,在程序開(kāi)頭執(zhí)行之前被內(nèi)核初始化為0或空指針。
11、可執(zhí)行程序文件調(diào)入到內(nèi)存產(chǎn)生進(jìn)程后,分為幾個(gè)存儲(chǔ)區(qū)域,說(shuō)明各區(qū)域的主要內(nèi)容與作用。
答:前三個(gè)與10中內(nèi)容相同4、堆區(qū):用于動(dòng)態(tài)內(nèi)存分配5、棧區(qū)(heap):由編譯器自動(dòng)分配釋放,存放函數(shù)的參數(shù)值、返回值、局部變量等。。
12、Linux系統(tǒng)下,用C語(yǔ)言編程,舉行文件管理,有哪兩類函數(shù)可用?試比較兩類函數(shù)的優(yōu)缺點(diǎn)。答:
ANSIC優(yōu)點(diǎn):1.具有豐盛的函數(shù)可供使用。2.直接對(duì)內(nèi)存緩沖區(qū)舉行操作,可以高效的寫隨意長(zhǎng)度的數(shù)據(jù)塊,在數(shù)據(jù)長(zhǎng)度滿足要求時(shí)支配底層系統(tǒng)調(diào)用,降低的系統(tǒng)的開(kāi)銷且沒(méi)有數(shù)據(jù)塊大小的限制,整體的效率要比直接對(duì)硬件操作的系統(tǒng)調(diào)用高3.具有更好的兼容性
缺點(diǎn):對(duì)系統(tǒng)調(diào)用舉行封裝,因此使用時(shí)會(huì)在庫(kù)函數(shù)中再調(diào)用系統(tǒng)調(diào)用,就一次讀寫相同的數(shù)據(jù)來(lái)說(shuō),效率比系統(tǒng)調(diào)用要低
POSIX優(yōu)點(diǎn):在類UNIX等系統(tǒng)中有很好的可移植性,可以直接設(shè)置對(duì)硬件的控制
缺點(diǎn):1.使用時(shí)會(huì)影響系統(tǒng)性能,假如一次只存取很少的內(nèi)容,效率會(huì)很低2.硬件會(huì)限制對(duì)底層系統(tǒng)調(diào)用一次能讀寫的數(shù)據(jù)塊大小,假如數(shù)據(jù)很小,會(huì)留下空隙。3.兼容性不是很好
13、Linux系統(tǒng)中,系統(tǒng)默認(rèn)為每個(gè)進(jìn)程打開(kāi)了幾個(gè)個(gè)文件?即每個(gè)進(jìn)程可以直接操作哪幾個(gè)流?
答:3個(gè),STDIN_FILENO標(biāo)準(zhǔn)輸入文件,STDOUT_FILENO標(biāo)準(zhǔn)輸出文件,STDOUT_FILENO標(biāo)準(zhǔn)錯(cuò)誤文件。每個(gè)進(jìn)程可以直接操作STDIN:標(biāo)準(zhǔn)輸入流,STDOUT標(biāo)準(zhǔn)輸出流,STDERR:標(biāo)準(zhǔn)錯(cuò)誤輸出流。
14、標(biāo)準(zhǔn)輸入輸出設(shè)備的文件描述符和文件流指針?lè)蛛x是什么?文件流指針與文件描述符有什么區(qū)分?答:使用系統(tǒng)調(diào)用open()勝利返回一個(gè)文件描述符,文件描述符是任何打開(kāi)的文件都被分配一個(gè)唯一非負(fù)整數(shù)用于表示該打開(kāi)的文件,內(nèi)核通過(guò)文件描述符對(duì)文件舉行操作。
文件流指針:在操作一個(gè)文件時(shí)要打開(kāi)該文件使用ANSIC庫(kù)函數(shù)fopen打開(kāi)一個(gè)文件后返回一個(gè)文件流指針與該文件關(guān)聯(lián),全部對(duì)該文件的讀寫操作都可以通過(guò)該指針流完成。在Linux中,文件流指針中封裝了文件描述符,才干使通過(guò)文件流指針對(duì)文件操作成為可能。
15、Linux文件類型,在shell應(yīng)用層面用ls-l查看命令不同類型的文件分離顯示什么內(nèi)容?
答:文件的類型,文件權(quán)限,應(yīng)銜接個(gè)數(shù),擁有者,擁有者所在組,文件大小,最后一次修改時(shí)光。
文件類型標(biāo)識(shí):
名目文件d,一般文件f,字符設(shè)備文件c,塊設(shè)備文件b,管道文件p,鏈接文件l,socket文件s
16、在Linux某個(gè)文件系統(tǒng)下,文件屬性中惟一標(biāo)識(shí)某個(gè)文件的是什么?惟一標(biāo)識(shí)一個(gè)打開(kāi)的文件是什么?
答:索引節(jié)點(diǎn),文件描述符。
17、ls–lc,-lu,-lt分離列出的是什么時(shí)光?
答:–lc:最后一次修改i結(jié)點(diǎn)時(shí)光.-lu:最后一次拜訪時(shí)光.-lt:最后一次修改內(nèi)容時(shí)光
18、一個(gè)文件設(shè)置了setuid位,該可執(zhí)行文件在執(zhí)行時(shí)有什么主要的影響。
答:會(huì)使得擁有執(zhí)行該文件權(quán)限的用戶執(zhí)行該文件時(shí),即使不是文件全部者也會(huì)使用文件全部者的權(quán)限。
19、一個(gè)常規(guī)文件的大小可以為0(st_size字段定義),那么名目和符號(hào)銜接的長(zhǎng)度是否可以為0?
答:不為0.由于每當(dāng)名目文件創(chuàng)建時(shí),會(huì)自動(dòng)產(chǎn)生兩個(gè)“.”開(kāi)始的隱含文件,符號(hào)鏈接,文件包含著另一個(gè)文件的路徑名。
20、Linux系統(tǒng)下,進(jìn)程結(jié)束的辦法有哪幾種?
答:1.在本進(jìn)程或者其它進(jìn)程中使用kill()調(diào)用發(fā)送SIGKILL信號(hào)。2.進(jìn)程運(yùn)行過(guò)程中碰到內(nèi)存段矛盾,非法指令等錯(cuò)誤,由操作系統(tǒng)發(fā)送相應(yīng)的信號(hào)終止進(jìn)程。3.進(jìn)程執(zhí)行到return或者調(diào)用exit()或者運(yùn)行到最后自然結(jié)束。4.執(zhí)行exec類函數(shù)執(zhí)行新的進(jìn)程
21、Linux系統(tǒng)下,線程結(jié)束的辦法有哪幾種?
答:1、調(diào)用pthread_exit()退出。2、調(diào)用pthread_cancel函數(shù)取消該線程。3、創(chuàng)建線程的進(jìn)程退出或者囫圇函數(shù)結(jié)束。4、其中的一個(gè)線程執(zhí)行了exec類函數(shù)執(zhí)行新的進(jìn)程。5.線程調(diào)用pthread_exit()或者執(zhí)行到return或者執(zhí)行完畢自然終止。6.線程執(zhí)行中出錯(cuò)由系統(tǒng)終止
22、線程間通信的機(jī)制有哪幾種?
答:1.信號(hào)量2.互斥量3.分享全局變量
23、進(jìn)程間通信的機(jī)制有哪幾種?
答:本地主機(jī)通信:1.信號(hào)2.信號(hào)量,消息隊(duì)列,分享內(nèi)存3.管道(包括出名管道和無(wú)名管道)4.分享內(nèi)存
網(wǎng)絡(luò)通信:1.socket2.rpc
24、畫(huà)出面對(duì)銜接的(TCP)socket通信模型,并解釋說(shuō)明其中主要的socket函數(shù)。
答:
socket():創(chuàng)建一個(gè)socket,作為通信的一個(gè)端點(diǎn)
bind():為socket命名,若是創(chuàng)建的AF_INET套接字將其關(guān)聯(lián)到一個(gè)IP端口號(hào),若是AF_UNIX套接字將其關(guān)聯(lián)到一個(gè)文件系統(tǒng)的路徑名
listen():創(chuàng)建一個(gè)隊(duì)列用來(lái)保存等待處理的銜接
accept():堵塞等待銜接哀求,在有銜接哀求時(shí)創(chuàng)建一個(gè)新的socket來(lái)與客戶舉行通信recv()/read():接收數(shù)據(jù)send()/write():發(fā)送數(shù)據(jù)
connect():用戶通過(guò)在一個(gè)命名的或者未命名的socket和服務(wù)器的socket建立銜接25、畫(huà)出面對(duì)非銜接的(UDP)socket通信模型,并解釋說(shuō)明其中主要的socket函數(shù)。
read/recvwrite/send
write/sendread/recv
socket,bind
26、Linux系統(tǒng)IO操作有哪幾種方式?
答:1、堵塞I/O2、非堵塞I/O3、多路挑選I/O4、信號(hào)驅(qū)動(dòng)I/O27、字節(jié)羅列挨次有幾種方式?答:大端方式,小端方式
采納大端方式將高位存放在低地址,小端方式將低位存放在低地址。采納大端方式舉行數(shù)據(jù)存放符合人類的正常思維,而采納小端方式舉行數(shù)據(jù)存放利于計(jì)算機(jī)處理。
28、POSIX標(biāo)準(zhǔn)下,文件管理的基本操作函數(shù)有哪些?
recvfromsendto
sendtorecvfrom
答:open打開(kāi)文件close關(guān)閉文件read()從文件或設(shè)備中讀讀數(shù)據(jù)write()向文件或者設(shè)備中寫數(shù)據(jù)fcntl():傳遞控制信息到設(shè)備驅(qū)動(dòng)程序
編程
29、如何使用ANSIC標(biāo)準(zhǔn)庫(kù),實(shí)現(xiàn)文件拷貝操作。
答:如果要從文件中拷貝數(shù)據(jù)到中
#include
#include
intmain()
{
intc;
FILE*in,*out;//定義兩個(gè)文件流指針
in=fopen("","r");//in與文件關(guān)聯(lián),使用只讀方式打開(kāi)
out=fopen("","w");//out與文件關(guān)聯(lián),用只寫方式打開(kāi)
while((c=fgetc(in))!=EOF)
fputc(c,out);//每次循環(huán)從中用fgetc()讀出一個(gè)字符放到c中,再?gòu)腸中寫入到。假如沒(méi)有讀到文件尾(EOF),就繼續(xù)下一次循環(huán)
exit(0);
}
30、如何使用POSIXIO庫(kù),實(shí)現(xiàn)文件拷貝操作。
答:
#include
#include
#include
#include
#include
intmain()
{
intc[50];//暫存從中讀出的字符
intin,out;
intnread;//存放read()返回值,即勝利讀取的字符數(shù)
in=open("",O_RDONLY);//以只讀方式打開(kāi)
out=open("",O_CREAT|O_WRONLY,S_IRUSR|S_IWRUSR);//以只寫方式打開(kāi),假如該文件不存在,就使用全部者可讀可寫的方式創(chuàng)建它
while((nread==read(in,c,50))>0)//哀求從中讀取50個(gè)字符放入c中,并返回實(shí)際讀取的字符數(shù)放入nread中
write(out,c,nread);//將c中的有效字符寫入,假如還有字符未讀出,循環(huán),假如返回值為0(即已經(jīng)讀完了全部字符),退出循環(huán)
if(nread
#include
#include
#include
#include
#include
#include
#include
#include
#include
#defineBUFSIZE1024
#definePERMS0666
#defineDUMMY0
intcp*source_*target_file)
{
intsource,target,num;
chariobuffer[BUFSIZE];
if((source=open(source_))==-1)
{
printf("Sourceerror!\n");
return1;
}
if((target=open(target_))==-1)
{
printf("Targeterror!\n");
return2;
}
while((num=read(source,iobuffer,BUFSIZE))>0)if(write(target,iobuffer,num)!=num)
{
printf("Targeterror!\n");
return3;
}
close(source);
close(target);
return0;
}
intcpdir(char*source_dir,char*target_dir){
DIR*source=NULL;
DIR*target=NULL;
structdirent*ent=NULL;
charname1[100],name2[100];
source=opendir(source_dir);
mkdir(target_dir,S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH);
target=opendir(target_dir);
if(source!=NULL
strcat(name1,source_dir);
strcat(name1,"/");
strcat(name1,ent->d_name);
strcpy(name2,"\0");
strcat(name2,target_dir);
strcat(name2,"/");
strcat(name2,ent->d_name);
if(ent->d_type==4)
cpdir(name1,name2);
if(ent->d_type==8)
cp);
}
}
closedir(source);
closedir(target);
}
return0;
}
intmain(intargc,char*argv[])
{
cpdir(*(argv+1),*(argv+2));
return0;
}寫一創(chuàng)建(fork)新進(jìn)程的程序,利用管道機(jī)制,實(shí)現(xiàn)在子進(jìn)程中寫入數(shù)據(jù),在父進(jìn)程中讀出數(shù)據(jù)。
答:
#include
#include
#include
#include
intmain()
{
intdata_processed;
int[2];//管道的描述符
constcharsome_data[]="123";//存放將要傳輸?shù)臄?shù)據(jù)
charbuffer[BUFSIZ+1];//stdio.h中已經(jīng)定義的BUFSIZ大小為8K
pid_tfork_result;
memset(buffer,'\0',sizeof(buffer));//buffer空間初始化‘\0’
if(pipe()==0){
fork_result=fork();
if(fork_result==-1){
fprintf(stderr,"Forkfailure");
exit(EXIT_FAILURE);
}
//子進(jìn)程從管道中讀出數(shù)據(jù)放到bufferr中
if(fork_result==0){
data_processed=read([0],buffer,BUFSIZ);
printf("Read%dbytes:%s\n",data_processed,buffer);
exit(EXIT_SUCCESS);
}
//父進(jìn)程往管道中寫入數(shù)據(jù)
else{
data_processed=write([1],some_data,strlen(some_data));
printf("Wrote%dbytes\n",data_processed);
}
}
exit(EXIT_SUCCESS);
}
32、編程實(shí)現(xiàn)who|sort
答:#include
#include
#include
#include
#include
#include
intmain(intargc,char*argv[])
{
intfds[2];
if(pipe(fds)==-1)
{
perror("pipe");
exit(EXIT_FAILURE);
}
if(fork()==0)
{
charbuf[128];
dup2(fds[0],0);
close(fds[1]);//mustinclude,orblock
execlp("sort","sort",(char*)0);
//execlp("cat","cat",(char*)0);
}
else
{
if(fork()==0)
{
dup2(fds[1],1);
close(fds[0]);
execlp("who","who",(char*)0);
}
else
{
close(fds[0]);
close(fds[1]);
wait(NULL);
wait(NULL);
}
}
return0;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年天津市和平區(qū)面向甘肅白銀會(huì)寧籍招聘事業(yè)單位工作人員模擬試卷及答案詳解(新)
- 2025湖北恩施州恩施市福牛物業(yè)有限公司招聘17人模擬試卷及答案詳解(典優(yōu))
- 2025廣西柳州市港航發(fā)展中心招聘編外合同制工作人員1人模擬試卷參考答案詳解
- 2025江蘇常州市鐘樓金隆控股集團(tuán)有限公司招聘第一批人員模擬試卷完整答案詳解
- 2025人民醫(yī)院原位新膀胱術(shù)構(gòu)建技術(shù)考核
- 2025安徽合肥長(zhǎng)虹美菱生活電器有限公司招聘技術(shù)支持崗位考前自測(cè)高頻考點(diǎn)模擬試題帶答案詳解
- 大學(xué)酚課件教學(xué)課件
- 張家口市人民醫(yī)院護(hù)理管理溝通協(xié)調(diào)考核
- 上海市中醫(yī)院肌肉骨骼系統(tǒng)手術(shù)編碼考核
- 2025第二人民醫(yī)院疼痛規(guī)范化管理考核
- 2025年“10.13建隊(duì)日”分批入隊(duì)活動(dòng)總結(jié):強(qiáng)國(guó)復(fù)興有我爭(zhēng)當(dāng)新時(shí)代好少年
- 2024年服裝時(shí)裝項(xiàng)目資金籌措計(jì)劃書(shū)代可行性研究報(bào)告
- 施工三方協(xié)議7篇
- 2025年數(shù)字娛樂(lè)行業(yè)數(shù)字化娛樂(lè)內(nèi)容與虛擬現(xiàn)實(shí)體驗(yàn)研究報(bào)告
- 法學(xué)專業(yè)考試題型及答案
- 水生產(chǎn)處理工三級(jí)安全教育(班組級(jí))考核試卷及答案
- 外科學(xué)考試大綱
- 3D打印簡(jiǎn)介課件
- 2025年貴州省貴陽(yáng)市輔警考試題庫(kù)(附答案)
- 電廠安全教育培訓(xùn)課件
- 小學(xué)科學(xué)新教科版三年級(jí)上冊(cè)全冊(cè)教案(2025秋新版)
評(píng)論
0/150
提交評(píng)論