日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

文件读写io操作范例

發布時間:2023/11/27 生活经验 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件读写io操作范例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

系統io讀寫,copy

int main(int argc, char **argv)

{ ?if(argc != 3)

?{ ??printf("Usage: %s <src> <dst>\n", argv[0]);

??exit(0); ?

}

?int fd1, fd2; ?fd1 = open(argv[1], O_RDONLY);

?fd2 = open(argv[2], O_CREAT | O_TRUNC | O_WRONLY);

?if(fd1 == -1 || fd2 == -1) ?{ ??perror("open() failed"); ??exit(0); ?}

?char buf[100];

?int nread; ?

while(1)

?{ ??bzero(buf, 100); ??nread = read(fd1, buf, 100);

??if(nread == 0) // hits the end of file ?

?{ ???break;

??} ??if(nread == -1) ?

?{ ???perror("read() failed"); ?

??exit(0); ?

?} ? ??

??write(fd2, buf, nread); ?}

?close(fd1); ?close(fd2);

?return 0; }

標準io讀寫操作.........................

fopen-----------------------------------------------------------------fclose范例:

int main(int argc, char **argv) {

?if(argc != 3) ?{

??printf("Usage: %s <src> <dst>\n", argv[0]);

??exit(0);

?}

?FILE *fp1 = fopen(argv[1], "r");

?if(fp1 == NULL) ?{

??fprintf(stderr, "fopen(%s) failed: %s\n", ????argv[1], strerror(errno)); ??

exit(0); ?

}

?FILE *fp2 = fopen(argv[2], "w"); ?if(fp2 == NULL) ?{

??fprintf(stderr, "fopen(%s) failed: %s\n", ????argv[2], strerror(errno)); ?

?exit(0);

?}

?char *buf = calloc(5, 20);

?int nread, nwrite;

?while(1) ?{ ??long begin = ftell(fp1);

??nread = fread(buf, 20, 5, fp1); // n是真正讀取到的數據塊個數 n<=5 ???????? // 100 --> 5 ???????? // 98? --> 4 ???????? // 80? --> 4 ???????? // 21? --> 1 ???????? // 19? --> 0 ???????? // 1? --> 0

??if(nread == 5) // 正常讀取 ?

?{ ???char *p = buf; ??

?while(nread > 0) ???{

????nwrite = fwrite(p, 20, nread, fp2); // nwrite <= n ???

?nread -= nwrite; ?

???p += nwrite*20; ???}

??}

??else if(nread >= 0) // 到達文件尾部 ?

?{ ???long end = ftell(fp1); ?

??fwrite(buf, end-begin, 1, fp2); ?

??break;

??}

??else // 讀取出錯了 ?

?{ ???perror("fread() failed");

???fclose(fp1); ?

??fclose(fp2); ?

??exit(0);

??} ?}

?fclose(fp1);

?fclose(fp2); ?

?return 0; }

fgets--------------------------------------------------------------------fputs范例:

while(1) ?{

??char *tmp = fgets(buf, 20, fp1); // 從fp1讀取一行(最多19字節)放到buf中

??if(tmp == NULL) ??{

???// 1. 遇到了錯誤 ??

?if(ferror(fp1)) ???{

????perror("fgets() failed"); ?

???break; ??

?}

???// 2. 遇到了文件尾 ?

??if(feof(fp1)) ?

??{ ????printf("copy completed.\n"); ?

???break; ??

?} ?

?}

??fputs(buf, fp2);

?}

fgetc----------------------------------------------------------------fputc

while(1) ?{ ??ch = fgetc(fp1);

??if(ch == EOF) ??

{ ???// 1. 遇到錯誤 ?

??if(ferror(fp1)) ???

{ ????perror("fgetc() failed");

????break; ???}

???// 2. 遇到文件尾 ??

?if(feof(fp1)) ???{

????printf("copy completed.\n"); ??

??break; ???} ?

?}

??fputc(ch, fp2);

?}

?

轉載于:https://www.cnblogs.com/defen/p/5242822.html

總結

以上是生活随笔為你收集整理的文件读写io操作范例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。