您好,登錄后才能下訂單哦!
//這是一個使用read函數把目標文件中數據讀出寫入到另外一個文件中的實例 //待讀出數據文件由argv1參數給,待寫入數據文件由argv2給出 #include <fcntl.h> #include <unistd.h> #include <stdio.h> #define PERMS 0666 #define DUMMY 0 #define MAXSIZE 1024 //常數定義 int main(int argc, char *argv[]) { int sourcefd, targetfd; //目標文件和源文件的描述符 int readCounter = 0; //讀出的字符計數器 char WRBuf[MAXSIZE]; //讀寫緩沖區 if(argc!=3) //如果命令行參數不爭取正確 { printf("Plz input the correct filename as './exam311ReadFun filename1 filename2'\n"); return 1; } if((sourcefd = open(*(argv+1),O_RDONLY,DUMMY))==-1) //如果源文件打開失敗 { printf("Source file open error!\n"); return 2; } if((targetfd = open(*(argv+2), O_WRONLY|O_CREAT, PERMS))==-1) //如果目標文件打開失敗 { printf("Target file open error!\n"); return 3; } while(( readCounter = read(sourcefd, WRBuf, MAXSIZE))>0) //如果讀出來的數據大于0 { if(write(targetfd, WRBuf,readCounter) != readCounter) //如果寫入的數據和讀出的數據不同 { printf("Target file write error!\n"); //寫數據錯誤 return 4; } } close(sourcefd); //關閉源文件 close(targetfd); //關閉目標文件 return 0; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。