記幾個常見的c檔案操作

2021-08-29 13:05:24 字數 1152 閱讀 4019

近用c語言做檔案操作比較頻繁,記幾個常用的操作

獲得檔案大小:

fseek(fp, 0, seek_end);

int filesize = ftell(fp);

rewind(fp);

讀取指定位置的資料塊:

fseek( fp,offset,seek_set );

int num_read = fread(buf, 1, length, fp); 

刪除檔案

int res = access( filename,0 ); // 判斷檔案是否存在

if ( res == 0 )

在指定位置寫入塊資料:

fseek( fp, offset, seek_set );

num_write = fwrite( buf, 1, n, fp );

開啟檔案方式中有乙個比較特別的,如果 某檔案中已經有了一部分資料,你需要繼續在上面新增資料,但是是在指定位置新增,也就是說,仍然需要通過 fseek 找到寫入位置,然後再 fwrite,這時候需要以 "rb+" 方式開啟。而不能以"a"或者"ab+"方式。以"a"方式開啟,fseek函式不起作用。

獲得檔案屬性

struct stat st;

file *fp = fopen( filename.c_str(),"rb" );

if ( !fp )

fstat( fp->_file, &st );

遍歷目錄

std::string dirspec = dir + "\\*.*";

struct _finddata_t filefind;

int done = 0;

intptr_t handle = 0;

if( ( handle = _findfirst(dirspec.c_str(),&filefind) ) == -1 )

return ivs_fail;

ivs_result res = ivs_ok, response =ivs_ok;

while( !(done=_findnext(handle,&filefind)) )  

else    

list.push_back( info );

}          

_findclose(handle);  

C語言常見的幾個排序

include stdio.h void insersoft int ch,int len 插入排序 for j i 1 j low j ch low temp void selectsoft int ch,int len 選擇排序 void maopaosoft int ch,int len 氣泡...

幾個常見的C 小問題

1.c 引用dll後,未能找到型別或命名空間名稱的問題 解決辦法 注意引用dll的程式集版本與當前程式集是否一致,即目標框架.net framwork版本是否一致。專案屬性 應用程式 解決辦法 把專案中 properties 目錄下的 license.licx 檔案刪除,再編譯就成功了。4.c 程式...

幾個檔案操作函式

1.open 函式 功能描述 用於開啟或建立檔案,在開啟或建立檔案時可以指定檔案的屬性及使用者的許可權等各種引數。所需標頭檔案 include,include,include 函式原型 int open const char pathname,intflags,int perms 引數 pathna...