欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于c中使用ftruncate()前需要fflush(),使用后需要rewind()的深入探討

 更新時間:2013年05月27日 16:31:49   作者:  
本篇文章是對在c中使用ftruncate()前需要fflush(),使用后需要rewind()進行了詳細(xì)的分析介紹,需要的朋友參考下
今天用ftruncate截斷文件, 但怎么都不能達(dá)到預(yù)料的效果, 截斷后文件中的內(nèi)容比較雜, 而且文件大小也保持原來的.
添加 fflush()rewind() 后OK.
以下是測試代碼:
復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
 FILE *fp;
 char *file = "tmp";
 int i;
 int fd;

 fp = fopen(file, "w");
 if(fp == NULL)
 {
  printf("fopen failed\n");
  return -1;
 }

 for(i=0; i<1000; i++)
 {
  fprintf(fp, "%d -- abcedfg  \n", i);
 }
 fflush(fp);
 fd = fileno(fp);
 if(ftruncate(fd, 0)<0)
 {
  perror("");
  return -1;
 }
 rewind(fp);
 fprintf(fp, "end\n");
 fclose(fp);
 return 0;
}

程序運行后, tmp 文件的內(nèi)容為 end , 大小為4字節(jié).
- - - - - - - - - -
在調(diào)用 ftruncate() 前用 rewind() 也行.
但用 ftruncate()截斷過的文件, 在用 fread, fwrite拷貝到另外一個文件時, 會出現(xiàn)亂碼和一些'\0'字符. 改用 fgets 和 fputs 則正常.

相關(guān)文章

  • C++深入淺出講解內(nèi)存四區(qū)與new關(guān)鍵字的使用

    C++深入淺出講解內(nèi)存四區(qū)與new關(guān)鍵字的使用

    內(nèi)存四區(qū),一個非常重要的知識點,搞懂了內(nèi)存四區(qū),才能更快的去搞懂指針。我們寫的C語言代碼,不夸張的說,都是直接或者間接的在操作內(nèi)存。C語言之所以能夠開發(fā)操作系統(tǒng),就是指針的存在,而指針說白了就是地址,內(nèi)存地址,指針變量說白了就是存儲地址的變量
    2022-05-05
  • 使用WindowsAPI實現(xiàn)播放PCM音頻的方法

    使用WindowsAPI實現(xiàn)播放PCM音頻的方法

    這篇文章主要介紹了使用WindowsAPI實現(xiàn)播放PCM音頻的方法,很實用的一個功能,需要的朋友可以參考下
    2014-08-08
  • C++中神奇的tuple詳解使用技巧及實例解析

    C++中神奇的tuple詳解使用技巧及實例解析

    C++11標(biāo)準(zhǔn)新引入了一種類模板,命名為 tuple(中文可直譯為元組),下面這篇文章主要給大家介紹了關(guān)于C++中神奇的tuple詳解使用技巧及實例解析的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • 深入理解二叉樹的非遞歸遍歷

    深入理解二叉樹的非遞歸遍歷

    本篇文章是對二叉樹的非遞歸遍歷進行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++實現(xiàn)四則混合運算計算器

    C++實現(xiàn)四則混合運算計算器

    這篇文章主要為大家詳細(xì)介紹了C++實現(xiàn)四則混合運算計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 詳解C++中移動語義的概念與使用

    詳解C++中移動語義的概念與使用

    本篇文章主要為大家詳細(xì)介紹了C++中移動語義的相關(guān)知識,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考,一起跟隨小編過來看看吧
    2023-06-06
  • c語言中unsigned修飾符的使用

    c語言中unsigned修飾符的使用

    在C語言中,unsigned是一種無符號整數(shù)修飾符,本文主要介紹了c語言中unsigned修飾符的使用,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • 利用Matlab繪制有趣圖像的示例代碼

    利用Matlab繪制有趣圖像的示例代碼

    這篇文章主要為大家總結(jié)了一些利用Matlab繪制的有趣好看的圖像的示例代碼。文中的示例代碼簡潔易懂,感興趣的小伙伴可以動手試一試
    2022-03-03
  • 詳解C++設(shè)計模式編程中策略模式的優(yōu)缺點及實現(xiàn)

    詳解C++設(shè)計模式編程中策略模式的優(yōu)缺點及實現(xiàn)

    這篇文章主要介紹了C++設(shè)計模式編程中策略模式的優(yōu)缺點及實現(xiàn),文中討論了策略模式中設(shè)計抽象接口的繼承和組合之間的區(qū)別,需要的朋友可以參考下
    2016-03-03
  • C++類與對象深入之構(gòu)造函數(shù)與析構(gòu)函數(shù)詳解

    C++類與對象深入之構(gòu)造函數(shù)與析構(gòu)函數(shù)詳解

    朋友們好,這篇播客我們繼續(xù)C++的初階學(xué)習(xí),現(xiàn)在對我們對C++非常重要的一個知識點做出總結(jié),整理出來一篇博客供我們一起復(fù)習(xí)和學(xué)習(xí),如果文章中有理解不當(dāng)?shù)牡胤?還希望朋友們在評論區(qū)指出,我們相互學(xué)習(xí),共同進步
    2022-06-06

最新評論