




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
年4月19日Linux程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書文檔僅供參考《Linux程序設(shè)計(jì)實(shí)驗(yàn)》指導(dǎo)書實(shí)驗(yàn)1 Linux下常見命令和Vi的使用一、實(shí)驗(yàn)內(nèi)容:Linux的常見基本命令,如ls、cd、mkdir、rmdir、pwd、more等。聯(lián)機(jī)幫助命令-man的使用。Vi的基本使用方法。二、實(shí)驗(yàn)?zāi)康模毫私釲inux的命令及使用格式。熟悉Linux的常見命令。三、實(shí)驗(yàn)步驟:用pwd顯示當(dāng)前工作目錄名:pwd;如果當(dāng)前目錄不是root,需改變到root目錄:cd/root。用mkdir建立四個(gè)目錄:mkdir/root/test1;mkdir/root/test2;mkdir/root/test2/abcd;mkdir/mypro。用cd命令從root開始依次進(jìn)入test1、test2、abcd、mypro目錄,并用pwd驗(yàn)證。 cdtest1;pwd cd../test2;pwd cdabcd;pwd cd../../mypro;pwd用cd命令從mypro目錄返回到根目錄,并用pwd命令驗(yàn)證。 cd/ pwd用rmkdir命令刪除子目錄abcd。Rmdir/root/test2/abcd分別用lsls–a和ls-l查看root目錄的內(nèi)容。 ls ls–a ls-lman命令:(按PageUp鍵向上翻頁(yè)P(yáng)ageDown向下翻頁(yè),按q退出) manls查看ls的幫助信息。 mancp查看cp的幫助信息。 manmkdir查看mkdir的幫助信息。 manrm>rm_help用重定向生成幫助文檔文本編輯器vi的使用在終端里輸入vi或vim,啟動(dòng)vi按a或i進(jìn)入vi的插入模式,這時(shí)能夠在vi里輸入文字了,輸入如下內(nèi)容:thisismyfirstfile….按esc鍵進(jìn)入命令模式,輸入:w/home/myfirstfile按回車保存文件,再輸入:q按回車,退出vi。用more查看文件myfirstfile的內(nèi)容:more/home/myfirstfile四、實(shí)驗(yàn)注意:命令一般是小寫字符串。注意大小寫有別。選項(xiàng)一般以減號(hào)(-)再加上一個(gè)或數(shù)個(gè)字符表示,用來選擇命令的不同操作。同一行可有數(shù)個(gè)命令,命令間以分號(hào)隔開。命令后加上&可使該命令在后臺(tái)執(zhí)行。Vi提供三種工作模式:插入模式、命令模式和底行模式。使用者進(jìn)入vi后,即處在命令模式下,此刻鍵入任何字符皆被視為命令,可進(jìn)行刪除、修改、存盤等操作。要輸入信息,應(yīng)轉(zhuǎn)換到插入模式。實(shí)驗(yàn)2 Linux下C語(yǔ)言程序的編譯與調(diào)試一、實(shí)驗(yàn)內(nèi)容:用Vi編寫一個(gè)判斷從鍵盤上輸入4個(gè)整數(shù),找出其中最大的整數(shù)的程序,用gcc/g++編譯并觀察編譯后的結(jié)果。用gdb調(diào)試該程序。運(yùn)行生成可執(zhí)行文件。二、實(shí)驗(yàn)?zāi)康模壕毩?xí)Vi編輯器來編譯C程序。學(xué)會(huì)使用gcc/g++編譯、gdb調(diào)試C程序。三、實(shí)驗(yàn)步驟在終端里輸入vi或vim,啟動(dòng)vi。按a或i進(jìn)入vi的插入模式,輸入以下代碼:#include<stdio.h>Intmain(viod){ Inta,b,c,d,max; Printf(“請(qǐng)輸入四個(gè)整數(shù):\n”); Scanf(“%d,%d,%d,%d”,&a,&b,&c,&d); If(a>b) Max=a; Else Max=b; If(c>max) Max=c; If(d>max) Max=d; Printf(“四個(gè)數(shù)中最大的數(shù)為:%d”,max); Return0;}按Esc鍵進(jìn)入命令模式,輸入:w/home/lab2.c按回車鍵保存文件,再輸入:q按回車,退出vi。用gcc編譯該程序:gcc–olab2lab2.c–ggdb運(yùn)行剛剛編譯的程序:./lab2調(diào)試剛剛編譯的程序:【cyz@localhostcyz】$gdblab2四、實(shí)驗(yàn)分析 為了使GDB正常工作,必須使程序在編譯時(shí)包含調(diào)試信息。調(diào)試信息里包含程序里的每個(gè)變量的類型和在可執(zhí)行文件里的地址映射以及源代碼的行號(hào)。GDB利用這些信息使源代碼和機(jī)器碼相關(guān)聯(lián)。因此在編譯時(shí)用-g選項(xiàng)打開調(diào)試選項(xiàng)。 GCC命令的基本用法:gcc[options][filename] -o選項(xiàng)為即將產(chǎn)生的可執(zhí)行文件指定一個(gè)文件名來代替默認(rèn)的a.out。 GDB是一個(gè)用來調(diào)試C和C++程序的強(qiáng)有力的調(diào)試器。它使用戶能在程序運(yùn)行時(shí)觀察程序的內(nèi)部結(jié)構(gòu)和內(nèi)存的使用情況。實(shí)驗(yàn)3 文件的操作一、實(shí)驗(yàn)內(nèi)容在Linux環(huán)境下編寫一段程序?qū)崿F(xiàn)Linux下的I/O流操作。二、實(shí)驗(yàn)?zāi)康氖煜こ蘈inux下的I/O流操作,掌握使用基于流的I/O操作實(shí)現(xiàn)輸入輸出的過程。三、實(shí)驗(yàn)步驟在終端里輸入vi或vim,啟動(dòng)vi。按a或i進(jìn)入vi的插入模式,輸入以下代碼:#include<sys/types.h>#include<stdio.h>#difineBUF_SIZE1024Intmain(viod){ Charbuf[BUF_SIZE]; FILE*source,*backup; If(!(source=fopen(“source.dat”,”r”))) { printf(“Errorinopeningfile.\n”); Exit(1); } If(!(backup=fopen(“backup.dat”,”w”))) { printf(“Errorincreatingfile.\n”); Exit(1); } While(fread(buf,sizeof(buf),1,source)==1) { If(fwrite(buf,sizeof(buf),1,backup)) { printf(“Errorinwritingfile.\n”); Exit(1); } } If(ferror(source)==0) { printf(“Errorinreadingfile.\n”); Exit(1); }If(fclose(source)) { printf(“Errorinclosefile.\n”); Exit(1); } If(fclose(backup)) { printf(“Errorinclosefile.\n”); Exit(1); }}按ESC鍵進(jìn)入命令模式,輸入:W/home/lab3.c,按回車保存文件,再輸入:q按回車,退出vi。用gcc編譯該程序: gcc–olab3lab3.c 編譯成功后,當(dāng)前目錄下會(huì)產(chǎn)生一個(gè)lab3的文件。運(yùn)行剛剛編譯的程序:./lab3四、實(shí)驗(yàn)分析 利用函數(shù)fopen(),fread(),fwrite(),fclose()來實(shí)現(xiàn)簡(jiǎn)單的文件備份(即將一個(gè)文件的內(nèi)容拷貝到另一個(gè)文件中去)。 在linux系統(tǒng)中,文件和設(shè)備都被看作是數(shù)據(jù)流。進(jìn)行操作之前,必須先將流打開。能夠經(jīng)過調(diào)用庫(kù)函數(shù)fopen()打開一個(gè)流,庫(kù)函數(shù)fopen()的返回值為一個(gè)FILE結(jié)構(gòu)指針,此結(jié)構(gòu)中包含對(duì)所打開流進(jìn)行操作所需的全部信息。 當(dāng)一個(gè)流被打開后,就能夠?qū)ζ鋱?zhí)行I/O操作了。當(dāng)一個(gè)流操作完成后,需要執(zhí)行清空緩沖區(qū)、保存數(shù)據(jù)等操作。 將流關(guān)閉,能夠經(jīng)過調(diào)用函數(shù)fclose()來完成。實(shí)驗(yàn)4進(jìn)程的創(chuàng)立編寫一段程序,使用系統(tǒng)調(diào)用fork()創(chuàng)立兩個(gè)子進(jìn)程。當(dāng)此程序運(yùn)行時(shí),在系統(tǒng)中有一個(gè)父進(jìn)程和兩個(gè)子進(jìn)程活動(dòng)。讓每個(gè)進(jìn)程在屏幕上顯示一個(gè)字符:父進(jìn)程顯示A,子進(jìn)程分別顯示字符B和字符C。修改上述程序,每個(gè)進(jìn)程循環(huán)顯示一句話。子進(jìn)程顯示’daughter…’及’son…’,父進(jìn)程顯示’parent…’。教學(xué)目標(biāo):掌握進(jìn)程的概念,明確進(jìn)程的含義;了解并發(fā)執(zhí)行的實(shí)質(zhì)。實(shí)驗(yàn)5進(jìn)程控制用fork()創(chuàng)立一個(gè)進(jìn)程,再調(diào)用exec()用新的程序替換該子進(jìn)程的內(nèi)容。用wait()來控制進(jìn)程執(zhí)行順序。教學(xué)目標(biāo):掌握其它創(chuàng)立進(jìn)程的方法。熟悉進(jìn)程的睡眠、同步、撤銷等進(jìn)程的控制方法。實(shí)驗(yàn)6管道通信編寫程序?qū)崿F(xiàn)進(jìn)程的管道通信。用系統(tǒng)調(diào)用pipe()建立一管道,兩個(gè)子進(jìn)程P1和P2分別向管道各寫一句話:child1issendingamessage!child2issendingamessage!父進(jìn)程從管道中讀出兩個(gè)來自子進(jìn)程的信息并顯示(要求先接收P1,后接收P2)。教學(xué)目標(biāo):了解管道的概念,熟悉Linux支持的管道通信方式。實(shí)驗(yàn)7信號(hào)機(jī)制用fork()創(chuàng)立兩個(gè)子進(jìn)程,再用體統(tǒng)調(diào)用signal()讓父進(jìn)程捕捉鍵盤上來的中斷信號(hào),捕捉到中斷信號(hào)后,父進(jìn)程用系統(tǒng)調(diào)用kill()向兩個(gè)子進(jìn)程發(fā)出信號(hào),子進(jìn)程捕捉到信號(hào)后分別輸出信息后終止。輸出信號(hào)如下所示:Childprocess1iskilledbyparent!Childprocess2iskilledbyparent!父進(jìn)程等待兩個(gè)子進(jìn)程終止后,輸出如下信息后終止。Parentprocessiskilled!教學(xué)目標(biāo):學(xué)生經(jīng)過實(shí)驗(yàn),了解什么是信號(hào),熟悉Linux系統(tǒng)中進(jìn)程之間軟中斷通信的基本原理。實(shí)驗(yàn)8消息的發(fā)送與接收 使用系統(tǒng)調(diào)用msgget(),msgsnd(),msgrev(),msgctl()編制一長(zhǎng)度為1k的消息發(fā)送和接收的程序。教學(xué)目標(biāo):經(jīng)過實(shí)驗(yàn),學(xué)生應(yīng)了解什么是消息,并熟悉消息傳送的機(jī)制。實(shí)驗(yàn)9共享存儲(chǔ)區(qū)通信編制一長(zhǎng)度為1K的共享存儲(chǔ)區(qū)發(fā)送和接收的程序。教學(xué)目標(biāo):使學(xué)生了解和熟悉共享存儲(chǔ)區(qū)機(jī)制實(shí)驗(yàn)10數(shù)據(jù)庫(kù)編程1、在MySQL/Oracle中添加一個(gè)用戶,用戶名為myuser,然后用myuser登錄到MySQL中,創(chuàng)立一個(gè)名為testdb的數(shù)據(jù)庫(kù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 班主任在班級(jí)活動(dòng)中的引導(dǎo)角色計(jì)劃
- 合同范本音樂app
- 股骨頸骨折護(hù)理查房
- 班級(jí)班規(guī)的制定與執(zhí)行計(jì)劃
- 2025年自然拼讀2級(jí)標(biāo)準(zhǔn)課件材料
- 學(xué)校周邊安全環(huán)境的構(gòu)建計(jì)劃
- 建立有效的會(huì)議記錄機(jī)制計(jì)劃
- 第3課 中華文明的起源2024-2025學(xué)年新教材七年級(jí)上冊(cè)歷史新教學(xué)設(shè)計(jì)(統(tǒng)編版2024)
- 以活動(dòng)促學(xué)習(xí)的班級(jí)實(shí)踐計(jì)劃
- 《貴州水城礦業(yè)股份有限公司水城縣米籮煤礦(新立一期)(延續(xù))礦產(chǎn)資源綠色開發(fā)利用方案(三合一)》評(píng)審意見
- 麻醉性鎮(zhèn)痛藥物的處方點(diǎn)評(píng)
- 2023年電腦印刷設(shè)計(jì)考試題庫(kù)及答案
- 《C4D》課程教學(xué)標(biāo)準(zhǔn)
- 2024年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(英語(yǔ)/數(shù)學(xué)/語(yǔ)文)筆試歷年參考題庫(kù)含答案解析
- 養(yǎng)肝護(hù)肝科普課件
- 康復(fù)科護(hù)士的康復(fù)護(hù)理計(jì)劃的個(gè)性化制定
- 小學(xué)英語(yǔ)新思維朗文2A知識(shí)清單總結(jié)期末復(fù)習(xí)資料
- 《京劇的角色》課件
- 幼兒園大班科學(xué)《7的組成和分解》
- 《項(xiàng)脊軒志》公開課課件【一等獎(jiǎng)】
- 肛腸疾病的預(yù)防與保健
評(píng)論
0/150
提交評(píng)論