嵌入式实训-day1
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                嵌入式实训-day1
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.                        
                                完全復(fù)制一個文件的內(nèi)容到另外一個文件
思路解析:
首先我這里使用了三個.c文件,分別是:yanyu.c、yanyu_old.c、yanyu_now.c
 其中yanyu.c負(fù)責(zé)將yanyu_old.c中的內(nèi)容讀入到buff緩沖區(qū)中,然后再從buff緩沖區(qū)中將數(shù)據(jù)寫入到y(tǒng)anyu_now.c中,最終實(shí)現(xiàn)將yanyu_old.c中的內(nèi)容復(fù)制到y(tǒng)anyu_now.c中。
具體實(shí)現(xiàn)如下:
首先將yanyu_old.c、yanyu_now.c兩個文件分別打開,然后分別獲取這兩個文件的文件描述符。
 再通過將yanyu_old.c中的內(nèi)容通過read函數(shù)讀入到buff緩沖區(qū)中;
 之后判斷read返回的讀入緩沖區(qū)實(shí)際的字節(jié)數(shù);如果實(shí)際的字節(jié)數(shù)等于零則表示讀入完成;最后再依次通過write函數(shù)以此寫入到y(tǒng)anyu_now.c文件中。最終首先復(fù)制的效果。
完整代碼如下:
yanyu.c
#include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> #include <unistd.h> #include <stdio.h> #include <string.h> int main (){int fd_old = open("./yanyu_old.c",O_RDWR);//打開文件,獲取其文件描述符int fd_now = open("./yanyu_now.c",O_RDWR);//打開文件,獲取其文件描述符if(fd_old < 0 || fd_now < 0){//如果其文件描述符為負(fù),則打開失敗perror("open");return -1;}printf("open seccessful\n");//否則輸出提示打開成功信息char buff[100]={0};//定義一個字符數(shù)據(jù)充當(dāng)緩沖區(qū)int write_buff_to_now;//用于接收從buff寫入yanyunow.c中的字符數(shù)據(jù)大小int read_buff = read(fd_old,buff,sizeof(buff));//獲取從yanyu_old.c讀入buff中的實(shí)際值while(read_buff != 0){//如果讀入的實(shí)際字符不為零,執(zhí)行寫入操作if(read_buff < 0 ){perror("read");return -1;}write_buff_to_now = write(fd_now,buff,read_buff);//從buff寫入到y(tǒng)anyunow.c中read_buff = read(fd_old,buff,sizeof(buff));//再依此從yanyuold.c中將字符讀入到buff中if(write_buff_to_now < 0 ){//寫入失敗perror("write");return -1;} }int close_old = close(fd_old);//一開始打開了文件,使用完成之后需要關(guān)閉文件int close_now = close(fd_now);//一開始打開了文件,使用完成之后需要關(guān)閉文件if(close_old < 0 || close_now <0){//關(guān)閉文件失敗,提示錯誤信息并結(jié)束perror("close");return -1;}printf("close successful\n");//成功關(guān)閉文件return 0; }yanyu_old.c
隨便寫就行,反正最后會通過執(zhí)行yanyu.c文件,將這里的內(nèi)容全部復(fù)制到y(tǒng)anyu_now.c里面的yanyu_now.c
//這里為空,啥也不需要,到時候執(zhí)行yanyu.c之后會將yanyu_old.c里面的內(nèi)容給復(fù)制過來。運(yùn)行之前:
 yanyu_old.c
 
 yanyu_now.c
 
 運(yùn)行之后:
 yanyu_now.c
總結(jié)
以上是生活随笔為你收集整理的嵌入式实训-day1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 平院Python习题
 - 下一篇: 驻马店治疗少精弱精最好的医院推荐