檔案操作函式 3

2021-07-23 23:18:03 字數 2807 閱讀 1104

(1)  功能:  rename函式功能是給乙個檔案重新命名, 用該函式可以實現檔案移動功能,

把乙個檔案的完整路徑改一下就實現了這個檔案的移動.

(2)  函式原型: int rename(char *oldname, char *newname)

(3)  標頭檔案:  #include

(4)  oldname:  舊檔案路徑

(5)  newname:  新檔案路徑

(6)  返回值:  執行成功則返回0,失敗返回-1,錯誤原因存於errno 

(7)  函式說明

(a) 如果oldname為乙個檔案而不是目錄,那麼為該檔案更名。

在這種情況下,如果newname作為乙個目錄已存在,則它不能重新命名乙個目錄。

如果newname已存在,而且不是乙個目錄,則先將其刪除然後將oldname更名為newname。

對oldname所在目錄以及newname所在的目錄,呼叫程序必須具有寫許可權,因為將更改這兩個目錄。

(b) 如若oldname為乙個目錄,那麼為該目錄更名。

如果newname已存在,則它必須是乙個目錄,而且該目錄應當是空目錄(空目錄指的是該目錄中只有. 和.. 項)。

如果newname存在(而且是乙個空目錄),則先將其刪除,然後將oldname更名為newname。

另外,當為乙個目錄更名時,newname不能包含oldname作為其路徑字首。

例如,不能將/usr更名為/usr/foo/testdir,因為老名字( /usr/foo)是新名字的路徑字首,因而不能將其刪除。

(c) 作為乙個特例,如果oldname和newname引用同一檔案,則函式不做任何更改而成功返回。

示例:

#include #include #include #include #define dprint printf

#define eprint printf

#define old_name "./old_test"

#define new_name "./new_test"

int main(void)

eprint("rename old_name(%s) to new_name(%s) success \n", old_name, new_name);

return 0;

}

(1)  功能:  刪除乙個檔案

(2)  函式原型:  int remove(const char *filename)

(3)  標頭檔案:  #include

(4)  filename:  要刪除的檔案

(5)  返回值:  如果刪除成功,remove返回0,否則返回-1

示例:

#include #include #include #include #define dprint printf

#define eprint printf

#define file_name "./new_test"

int main(void)

eprint("remove file_name(%s) success \n", file_name);

return 0;

}

使用c庫函式實現:

(1)開啟檔案:  file *fopen(const char* filename, const char* mode )  

(2)關閉檔案:  int fclose( file *stream )

(3)檔案讀:    size_t fread( void *buffer, size_t size, size_t count, file *stream )

(4)檔案寫:    size_t fwrite( const void *buffer, size_t size, size_t count, file *stream )

檔案拷貝示例:

#include #include #define dprint     printf     //調式輸出  

#define eprint printf //錯誤輸出

#define buffer_size (1024)

#define read_file "./read_file"

#define write_file "./write_file"

int main()

; size_t read_size = 0;

size_t write_size = 0;

long len = 0;

read_file = fopen(read_file, "rb");

if(null == read_file)

write_file = fopen(write_file, "wb");

if (null == write_file)

while ( (read_size = fread(buffer, 1, buffer_size, read_file)) > 0 )

len = len + write_size;

} fclose(read_file);

fclose(write_file);

eprint("copy source_file(%s) to des_file(%s) success \n", read_file, write_file);

return 0;

}

本文**:

檔案操作函式

1,feof 檢查檔案流是否讀到了檔案尾 相關函式 fopen,fgetc,fgets,fread 表頭檔案 include 定義函式 int feof file stream 函式說明 feof 用來偵測是否讀取到了檔案尾,尾數stream為fopen 所返回之檔案指標。如果已到檔案尾則返回非零值...

檔案操作函式

1 檔案測試函式 2 檔案操作 新建檔案 fopen filename,w 以 寫 的方式開啟乙個不存在的檔案,就會新建該檔案 檔案刪除 unlink 檔案複製 copy filename,aaa bb.txt 盡量使用 和相對路徑,因為linux只認 也沒有磁碟分割槽,而windows 和 都認 ...

檔案操作函式

fopenfclose函式 系統需要在記憶體中為每個讀寫的檔案開闢一段快取,快取中儲存檔案資訊的是file結構體,開啟檔案時就會獲得指向file的指標。為什麼要用快取呢,因為硬碟讀取時很慢的,機械硬碟的讀寫時間都是毫秒級,而記憶體讀寫是納秒級的,差了一百萬倍。函式原型為file fopen cons...