brcAAA操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第1頁(yè)
brcAAA操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第2頁(yè)
brcAAA操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第3頁(yè)
brcAAA操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第4頁(yè)
brcAAA操作系統(tǒng)實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

學(xué) 生 實(shí) 驗(yàn) 報(bào) 告姓名: 黃維津 年級(jí)專業(yè)班級(jí) 計(jì)科141班 學(xué)號(hào) 201415210137 成績(jī) 課程名稱操作系統(tǒng)實(shí)驗(yàn)名稱實(shí)驗(yàn)1 操作系統(tǒng)界面【實(shí)驗(yàn)?zāi)康?、要求?. 熟悉Linux字符操作界面;2. 熟悉常用的Shell命令;3. 熟悉Linux文本編輯方法;4. 掌握利用GCC編譯器在Linux環(huán)境下編譯C程序的能力【實(shí)驗(yàn)內(nèi)容】1. Linux字符操作界面;2. Shell操作命令;3. VIM編輯器的使用方法;4. Linux下的C程序開(kāi)發(fā)?!緦?shí)驗(yàn)環(huán)境】(含主要設(shè)計(jì)設(shè)備、器材、軟件等)計(jì)算機(jī) C語(yǔ)言編程軟件 redhat操作系統(tǒng) VM虛擬機(jī)【實(shí)驗(yàn)步驟、過(guò)程】(含原理圖、流程圖、關(guān)鍵代碼,或?qū)嶒?yàn)過(guò)程中的記錄、數(shù)據(jù)等)1. 同時(shí)按住“Ctrl+Alt+Shift+F2”鍵進(jìn)入字符操作界面;2. 熟悉常用的Shell操作命令 (1)查看系統(tǒng)分區(qū)情況:fdisk -l (2)查看當(dāng)前運(yùn)行級(jí)別:runlevel可知,當(dāng)前運(yùn)行級(jí)別為:5 (3)將當(dāng)前運(yùn)行級(jí)別改變?yōu)?:init 3運(yùn)行后的結(jié)果如下圖:輸入命令runlevel查看當(dāng)前運(yùn)行級(jí)別可知為3 (4)新建文件:touch 文件名這里創(chuàng)建了一個(gè)文件名為test.txt的文件 (5)刪除文件:rm 要?jiǎng)h除的文件名這里我刪除了剛新建的test.txt文件,輸入ls命令已查看不到test.txt文件了,證明已刪除成功。 (6)查看文件權(quán)限:ls -l可知hello.c文件的權(quán)限是644 (7)更改文件權(quán)限:chmod 文件權(quán)限 文件名這里將hello.c文件的權(quán)限更改為755,即rwxr-xr-x3. VIM編輯器的使用方法 (1)一般模式:以vi打開(kāi)一個(gè)文件就直接進(jìn)入一般模式了(這是默認(rèn)的模式)。 (2)編輯模式:在一般模式中可以進(jìn)行刪除、復(fù)制、粘貼等的操作,但是卻無(wú)法編輯文件的內(nèi)容,只有當(dāng)?shù)侥惆聪隆緄, I, o, O, a, A, r, R】等任何一個(gè)字母之后才會(huì)進(jìn)入編輯模式。按下【Esc】即可退出編輯模式 (3)命令行模式:輸入【 : / ? 】三個(gè)中的任何一個(gè),就可以將光標(biāo)移動(dòng)到最底下那一行。在命令行模式下,可選用以下指令離開(kāi)vi:q! 退出,不保存;:wq 保存退出;4. Linux下的C程序開(kāi)發(fā) (1)使用touch命令創(chuàng)建c文件hello.c; (2)使用vi hello.c命令編輯c文件: #include int main() printf(“hello,word”); return 0; (3)按esc鍵 進(jìn)入命令模式 (4)輸入:“:wq!”保存退出; (5)編譯程序:gcc -o hello hello.c (6)運(yùn)行程序:./hello (7)運(yùn)行結(jié)果:輸出hello,word 2016年 11月 20日 【實(shí)驗(yàn)結(jié)果或總結(jié)】(對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行相應(yīng)分析,或總結(jié)實(shí)驗(yàn)的心得體會(huì),并提出實(shí)驗(yàn)的改進(jìn)意見(jiàn))在實(shí)驗(yàn)的過(guò)程中,我用的是VM虛擬機(jī)和redhat操作系統(tǒng)(linux系統(tǒng)中的一種),學(xué)會(huì)了如何在虛擬機(jī)上安裝并運(yùn)行l(wèi)inux操作系統(tǒng),也熟悉了Linux字符操作界面和常用的shell命令。雖然我一開(kāi)始從圖形操作界面轉(zhuǎn)到命令行操作界面多少有些不適應(yīng),但隨著對(duì)命令行的熟悉應(yīng)用,發(fā)現(xiàn)也沒(méi)那么難,只是命令行太多了會(huì)記不住。與此同時(shí),第一次在linux系統(tǒng)下編寫(xiě)c程序,感覺(jué)用vi比較麻煩,因?yàn)橛绣e(cuò)了不能調(diào)試,只是提示錯(cuò)誤。不過(guò)此次實(shí)驗(yàn)要求掌握編寫(xiě)并運(yùn)行一個(gè)簡(jiǎn)單的c程序,我就直接輸出一句話就好了,所以不需要怎么調(diào)試了,直接用gcc編譯并運(yùn)行。在這實(shí)驗(yàn)的過(guò)程中,加深了對(duì)一些術(shù)語(yǔ)的理解,也讓我學(xué)到了新的知識(shí)。要說(shuō)到實(shí)驗(yàn)的改進(jìn)意見(jiàn),我想最大要改進(jìn)的地方就是要提高虛擬機(jī)運(yùn)行的流暢度,不能在使用虛擬機(jī)中的操作系統(tǒng)時(shí)出現(xiàn)運(yùn)行卡頓等的情況,以保住實(shí)驗(yàn)的流暢進(jìn)行。 指導(dǎo)教師簽名: 20 年 月 日【備注】學(xué) 生 實(shí) 驗(yàn) 報(bào) 告姓名: 黃維津 年級(jí)專業(yè)班級(jí) 計(jì)科141 學(xué)號(hào) 201415210137 成績(jī) 課程名稱操作系統(tǒng)實(shí)驗(yàn)名稱實(shí)驗(yàn)2 進(jìn)程管理【實(shí)驗(yàn)?zāi)康?、要求?熟悉進(jìn)程與程序的區(qū)別,加深對(duì)進(jìn)程概念的理解;2了解并發(fā)進(jìn)程的執(zhí)行過(guò)程;3掌握解決進(jìn)程互斥使用資源的方法?!緦?shí)驗(yàn)內(nèi)容】1. 編寫(xiě)一段程序,實(shí)現(xiàn)進(jìn)程的管理;2. 編寫(xiě)一段程序?qū)崿F(xiàn)進(jìn)程的通信?!緦?shí)驗(yàn)環(huán)境】(含主要設(shè)計(jì)設(shè)備、器材、軟件等)信息樓505機(jī)房Linux環(huán)境【實(shí)驗(yàn)步驟、過(guò)程】(含原理圖、流程圖、關(guān)鍵代碼,或?qū)嶒?yàn)過(guò)程中的記錄、數(shù)據(jù)等)1. 編寫(xiě)一個(gè)程序,創(chuàng)建兩個(gè)子進(jìn)程,然后分別在父、子進(jìn)程中顯示它們的進(jìn)程號(hào),以及對(duì)于的父進(jìn)程號(hào)(1)思路:使用系統(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”。(2)程序關(guān)鍵代碼#includemain()int p1,p2;if(p1=fork()/*子進(jìn)程創(chuàng)建成功,如果失敗fork函數(shù)會(huì)返回一個(gè)負(fù)值*/putchar(b);elseif(p2=fork()/*子進(jìn)程創(chuàng)建成功,如果失敗fork函數(shù)會(huì)返回一個(gè)負(fù)值*/putchar(c);else putchar(A);/*父進(jìn)程執(zhí)行*/ (3)運(yùn)行結(jié)果:Abc任意的排序(4)結(jié)果分析:從進(jìn)程執(zhí)行并發(fā)來(lái)看,輸出Abc的排列都是有可能的。fork()函數(shù)創(chuàng)建進(jìn)程所需的時(shí)間雖然可能多于輸出一個(gè)字符的時(shí)間,但各個(gè)進(jìn)程的時(shí)間片的獲得卻不一定是順序的,所以輸出Abc的排列都是有可能的。2. 寫(xiě)一個(gè)程序,實(shí)現(xiàn)父子進(jìn)程之間的通信用管道實(shí)現(xiàn):pipe_named_write.c/ 向管道文件寫(xiě)信息#include#include#includeint main() FILE * out_file;int count = 1;char buf80;out_file = fopen(“mypipe”,”w”);if (out_file=NULL) printf(“Error opening pipe”); exit(1);sprintf(buf, ”this is the test data for the named pipe example n”);fwrite(buf,1,88,out_file);fclose(out_file);pipe_named_read.c/ 從管道文件讀信息int main() FILE *in_file; int count = 1; char buf80; in_file = fopen(“mypipe”, “r”); if (in_file = NULL) printf(“Error in fopen. n”); exit(1);while ( (count = fread(buf,1,80,in_file)0) printf(“received from pipe: %s n”,buf);fclose()in_file;使用FIFO實(shí)現(xiàn)進(jìn)程間的通信。用mkfifo函數(shù)創(chuàng)建管道文件my_fifo,然后從Data.txt文件中讀取數(shù)據(jù),并寫(xiě)入管道文件my_fifo中;在從管道文件my_fifo中讀取數(shù)據(jù),寫(xiě)入DataFromFIFO.txt文件中。整個(gè)過(guò)程用兩個(gè)C程序來(lái)實(shí)現(xiàn):fifowrite.c文件實(shí)現(xiàn)管道文件的創(chuàng)建,以及將Data.txt文件中的數(shù)據(jù)讀入管道文件中;fiforead.c文件實(shí)現(xiàn)從管道文件中讀取數(shù)據(jù),并寫(xiě)入DataFromFIFO.txt文件中。fifowrite.c的源代碼如下:#include #include #include #include #include #include #include #include int main() const char *fifo_name = /home/c/my_fifo; int pipe_fd = -1; int data_fd = -1; int res = 0; const int open_mode = O_WRONLY; int bytes_sent = 0; char bufferPIPE_BUF + 1; if(access(fifo_name, F_OK) = -1) / 管道文件不存在 / 創(chuàng)建命名管道 res = mkfifo(fifo_name, 0777); if(res != 0) fprintf(stderr, Could not create fifo %sn, fifo_name); exit(EXIT_FAILURE); printf(Process %d opening FIFO O_WRONLYn, getpid(); / 以只寫(xiě)阻塞方式打開(kāi)FIFO文件,以只讀方式打開(kāi)數(shù)據(jù)文件 pipe_fd = open(fifo_name, open_mode); data_fd = open(Data.txt, O_RDONLY); printf(Process %d result %dn, getpid(), pipe_fd); if(pipe_fd != -1) int bytes_read = 0; / 向數(shù)據(jù)文件讀取數(shù)據(jù) bytes_read = read(data_fd, buffer, PIPE_BUF); bufferbytes_read = 0; while(bytes_read 0) / 向FIFO文件寫(xiě)數(shù)據(jù) res = write(pipe_fd, buffer, bytes_read); if(res = -1) fprintf(stderr, Write error on pipen); exit(EXIT_FAILURE); / 累加寫(xiě)的字節(jié)數(shù),并繼續(xù)讀取數(shù)據(jù) bytes_sent += res; bytes_read = read(data_fd, buffer, PIPE_BUF); bufferbytes_read = 0; close(pipe_fd); close(data_fd); else exit(EXIT_FAILURE); printf(Process %d finishedn, getpid(); exit(EXIT_SUCCESS); 源文件fiforead.c的代碼如下:#include #include #include #include #include #include #include #include int main() const char *fifo_name = /home/c/my_fifo; int pipe_fd = -1; int data_fd = -1; int res = 0; int open_mode = O_RDONLY; char bufferPIPE_BUF + 1; int bytes_read = 0; int bytes_write = 0; / 清空緩沖數(shù)組 memset(buffer, 0, sizeof(buffer); printf(Process %d opening FIFO O_RDONLYn, getpid(); / 以只讀阻塞方式打開(kāi)管道文件,注意與fifowrite.c文件中的FIFO同名 pipe_fd = open(fifo_name, open_mode); / 以只寫(xiě)方式創(chuàng)建保存數(shù)據(jù)的文件 data_fd = open(DataFormFIFO.txt, O_WRONLY|O_CREAT, 0644); printf(Process %d result %dn,getpid(), pipe_fd); if(pipe_fd != -1) do / 讀取FIFO中的數(shù)據(jù),并把它保存在文件DataFormFIFO.txt文件中 res = read(pipe_fd, buffer, PIPE_BUF); bytes_write = write(data_fd, buffer, res); bytes_read += res; while(res 0); close(pipe_fd); close(data_fd); else exit(EXIT_FAILURE); printf(Process %d finished, %d bytes readn, getpid(), bytes_read); exit(EXIT_SUCCESS); 運(yùn)行結(jié)果如下: 2016 年 11 月 26 日 【實(shí)驗(yàn)結(jié)果或總結(jié)】(對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行相應(yīng)分析,或總結(jié)實(shí)驗(yàn)的心得體會(huì),并提出實(shí)驗(yàn)的改進(jìn)意見(jiàn)) 在查詢了資料后逐漸懂得怎么下手完成這個(gè)實(shí)驗(yàn),在實(shí)驗(yàn)過(guò)程中逐漸理解了進(jìn)程的概念,并進(jìn)一步了解了進(jìn)程的管理機(jī)制,同時(shí)也明白了什么是管道通信,怎樣加鎖和解鎖,對(duì)課本上的知識(shí)理解得更加深入了。同時(shí)也讓我認(rèn)識(shí)到自己的不足,操作系統(tǒng)的有些知識(shí),我知道的還不多,沒(méi)有掌握好,還需要多多學(xué)學(xué),不斷提升自己的能力。 指導(dǎo)教師簽名: 年 月 日【備注】學(xué) 生 實(shí) 驗(yàn) 報(bào) 告姓名: 黃維津 年級(jí)專業(yè)班級(jí) 計(jì)科141 學(xué)號(hào) 201415210137 成績(jī) 課程名稱操作系統(tǒng)實(shí)驗(yàn)名稱實(shí)驗(yàn)3 存儲(chǔ)管理【實(shí)驗(yàn)?zāi)康?、要求?. 了解虛擬存儲(chǔ)管理技術(shù)的原理與特點(diǎn);2. 掌握請(qǐng)求頁(yè)式存儲(chǔ)管理的頁(yè)面設(shè)置算法?!緦?shí)驗(yàn)內(nèi)容】1. 編寫(xiě)一個(gè)程序模擬存儲(chǔ)管理過(guò)程?!緦?shí)驗(yàn)環(huán)境】(含主要設(shè)計(jì)設(shè)備、器材、軟件等)計(jì)算機(jī) C語(yǔ)言編程軟件【實(shí)驗(yàn)步驟、過(guò)程】(含原理圖、流程圖、關(guān)鍵代碼,或?qū)嶒?yàn)過(guò)程中的記錄、數(shù)據(jù)等)頁(yè)式虛擬存儲(chǔ)管理程序模擬(1)設(shè)計(jì)思路根據(jù)模擬的頁(yè)式管理設(shè)計(jì),在頁(yè)式存儲(chǔ)管理中有三種最基本的頁(yè)面調(diào)度算法:最佳置換算法(OPT)、先進(jìn)先出置換算法(FIFO)、最近最久未使用置換算法(LRU),但在三種算法中均要求在調(diào)度程序中產(chǎn)生的頁(yè)面序列是隨機(jī)產(chǎn)生的,而不是人為的輸入,在執(zhí)行時(shí)只需改變頁(yè)面的大小及內(nèi)存容量就可以得到不同的頁(yè)面序列,另外還需要說(shuō)明隨機(jī)的性能和其性能可能對(duì)算法的影響,并對(duì)隨機(jī)性要有一定的參數(shù)控制能力。此次實(shí)驗(yàn)將使用兩種方法實(shí)現(xiàn),分別是先進(jìn)先出(FIFO)頁(yè)面置換和最近最久未使用(LRU)置換。(2) 程序流程圖輸入內(nèi)存分配頁(yè)數(shù)開(kāi)始初始化第一列值是否有請(qǐng)求訪問(wèn)頁(yè)復(fù)制前一頁(yè)內(nèi)容內(nèi)存是否已存在內(nèi)存是否有空頁(yè)直接插入替換內(nèi)存中將來(lái)不出現(xiàn)或離當(dāng)前最遠(yuǎn)的頁(yè)輸出全部頁(yè)面變化情況結(jié)束YYNNYN(3)關(guān)鍵代碼function FIFO()PageList = 6 2 1 0 3 4 2 0 4 5 9 3 1 2 0 5 3 1 8; / 初始化:NumofPage = length(PageList);NumofPosition = M;SMatrixNumofPosition2 = -1; / 將其初始化為-1for( i=0; iNumofPage;i+) pos = findPositionFIFO(SMatrix,PageListi); if (pos=-1) continue; / 在SMatrix中找到頁(yè)面已經(jīng)存在 for (j=0;j0) SMatrixi2 = SMatrixi2 + 1; SMatrixpos1 = PageListi; if (SMatrixpos2 =-1) SMatrixpos2 = 1function pos = findPositionFIFO(SMatrix,Pageid) NumofPosition = length(SMatrix); lastPeriod = SMatrix02;value = SMatrix01;for (i=0; i lastPeriod) pos = i; lastPeriod = SMatrixi2;function LRU()PageList = 6 2 1 0 3 4 2 0 4 5 9 3 1 2 0 5 3 1 8; / 初始化:NumofPage = length(PageList);NumofPosition = M;SMatrix = arrayNumofPosition2; / 將其初始化為-1for( i=0; iNumofPage;i+) pos isIn = findPositionLRU(SMatrix,PageListi); if (pos=-1) / 在SMatrix中找到頁(yè)面已經(jīng)存在SMatrixi2 = 1; continue; for (j=0;j0) SMatrixi2 = SMatrixi2 + 1; SMatrixpos1 = PageListi; if (SMatrixpos2 =-1) SMatrixpos2 = 1function pos isIn = findPositionLRU(SMatrix,Pageid) NumofPosition = length(SMatrix); lastPeriod = SMatrix02;value = SMatrix01;isIn = 0;for (i=0; i lastPeriod) pos = i; lastPeriod = SMatrixi2; 2016 年 11 月 26 日 【實(shí)驗(yàn)結(jié)果或總結(jié)】(對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行相應(yīng)分析,或總結(jié)實(shí)驗(yàn)的心得體會(huì),并提出實(shí)驗(yàn)的改進(jìn)意見(jiàn)) 由于知識(shí)有限,只能大概地完成這次實(shí)驗(yàn)。通過(guò)完成這個(gè)實(shí)驗(yàn),讓我反復(fù)地琢磨著課本上的知識(shí)點(diǎn),努力將其弄懂,這樣才有思路來(lái)完成實(shí)驗(yàn)。從理論到實(shí)踐可以學(xué)到很多的東西,同時(shí)也可以鞏固老師在課堂上講過(guò)的知識(shí),也學(xué)到了很多在書(shū)本上學(xué)不到的知識(shí)。通過(guò)這次實(shí)驗(yàn)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的。 指導(dǎo)教師簽名: 20 年 月 日【備注】學(xué) 生 實(shí) 驗(yàn) 報(bào) 告姓名: 黃維津 年級(jí)專業(yè)班級(jí) 計(jì)科141 學(xué)號(hào) 201415210137 成績(jī) 課程名稱操作系統(tǒng)實(shí)驗(yàn)名稱實(shí)驗(yàn)4 文件管理【實(shí)驗(yàn)?zāi)康摹⒁蟆?. 了解文件系統(tǒng)的功能和內(nèi)部實(shí)現(xiàn);2. 熟悉文件系統(tǒng)的系統(tǒng)調(diào)用;【實(shí)驗(yàn)內(nèi)容】1. 使用有關(guān)文件系統(tǒng)的系統(tǒng)調(diào)用create()、open()、close()、read()和write()將file1.c和file2.c合并為file3.c;【實(shí)驗(yàn)環(huán)境】(含主要設(shè)計(jì)設(shè)備、器材、軟件等)計(jì)算機(jī) C語(yǔ)言編程軟件【實(shí)驗(yàn)步驟、過(guò)程】(含原理圖、流程圖、關(guān)鍵代碼,或?qū)嶒?yàn)過(guò)程中的記錄、數(shù)據(jù)等) (1)了解函數(shù) create()函數(shù): 功能描述:創(chuàng)建一個(gè)文件并以只寫(xiě)的方式打開(kāi) 函數(shù)原型:int creat(const char * pathname, mode_t mode) 參數(shù)說(shuō)明:pathname:指向欲建立的文件路徑字符串 mode_t mode:表示新建文件的權(quán)限 返回值:成功:返回文件描述符 失?。悍祷?1 open()函數(shù): 功能描述:用于打開(kāi)或創(chuàng)建文件,在打開(kāi)或創(chuàng)建文件時(shí)可以指定文件的屬性及用戶的權(quán)限等各種參數(shù)。 函數(shù)原型:int open(const char *pathname,int flags,int perms) 參數(shù)說(shuō)明:pathname:被打開(kāi)的文件名(可包括路徑名如dev/ttyS0) flags:文件打開(kāi)方式 perms:被打開(kāi)文件的存取權(quán)限 返回值: 成功:返回文件描述符 失敗:返回-1 close()函數(shù): 功能描述:用于關(guān)閉一個(gè)被打開(kāi)的的文件 函數(shù)原型:int close(int fd) 參數(shù)說(shuō)明:fd文件描述符 函數(shù)返回值:0成功,-1出錯(cuò) read()函數(shù) 功能描述: 從文件讀取數(shù)據(jù) 函數(shù)原型:ssize_t read(int fd, void *buf, size_t count) 參數(shù)說(shuō)明:fd: 將要讀取數(shù)據(jù)的文件描述詞 buf:指緩沖區(qū),即讀取的數(shù)據(jù)會(huì)被放到這個(gè)緩沖區(qū)中去 count: 表示調(diào)用一次read操作,應(yīng)該讀多少數(shù)量的字符 返回值:返回所讀取的字節(jié)數(shù);0(讀到EOF);-1(出錯(cuò)) write()函數(shù) 功能描述: 向文件寫(xiě)入數(shù)據(jù) 函數(shù)原型:ssize_t write(int fd, void *buf, size_t count) 返回值:寫(xiě)入文件的字節(jié)數(shù)(成功);-1(出錯(cuò)) (2)關(guān)鍵代碼#include#include#includevoid main()char s1filename20,s2filename20,dfilename20;FILE *s1fp,*s2fp,*dfp;int num=0;/*得到第一個(gè)文件的文件名*/ printf(Please input source1 filename:n); gets(s1filename); /*得到另一個(gè)文件的文件名*/ printf(Please input source2 filename:n); gets(s2filename); /*得到要目標(biāo)文件的文件名*/printf(Please input destination filename:n);gets(dfilename);/*輸出信息合并前的文件的內(nèi)容*/if(s1fp=fopen(s1filename,r)=0)printf(Cant open the file :%sn,s1filename);exit(0);if(s2fp=fopen(s2filename,r)=0)printf(Cant open the file :%sn,s2filename);exit(0);if(dfp=fopen(dfilename,w+)=0) printf(Cant open or create the file :%sn,dfilename); exit(0); /*輸出信息合并前文件的內(nèi)容*/ printf(nThe text of the file %s before merging :n,s1filename);OutputFile(s1fp);printf(nThe text of the file %s before merging :n,s2filename); OutputFile(s2fp); fseek(s2fp,0L,SEEK_SET); fseek(s1fp,0L,SEEK_SET); /*信息合并*/ MergeFile(s1fp,s2fp,dfp,&num); /*輸出信息合并后文件的內(nèi)容*/ printf(nThe text of the file %s after merging :n,dfilena

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論