1. 程式人生 > >檔案和目錄操作

檔案和目錄操作

開啟和關閉檔案
fopen、freopen和fclose是ANSI標準庫的一部分。原型:
#include <stdio.h>
FILE *fopen(const char *path, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);
Int fclose(FILE *stream);
讀寫檔案
函式fread和fwrite允許從檔案流讀出資料以及向檔案流寫入資料。原型:
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(void *ptr, size_t size, size_t nmemb, FILE *stream);
指標ptr指向的緩衝區儲存fread從檔案讀入的資料或儲存fwrite向檔案寫回的資料。通常由stream指定要操作的資料流。size和nmemb分別控制讀入或寫回的一條記錄的大小和記錄數。
獲得檔案狀態
feof和ferror函式都返回流當前狀態。clearerr清除在檔案上已經設定的錯誤位。fileno返回與給定的檔案流相關聯的檔案描述符。原型:
#include <stdio.h>
int feof(FILE *stream);
int ferror(FILE *stream);
void clearerr(FILE *stream);
int fileno(FILE *stream);
檔案定位
#include <stdio.h>
int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);
int fgetpos(FILE *stream, fpos_t *pos);
int fsetpos(FILE *stream, fpos_t *pos);
void rewind(FILE *stream);
緩衝區控制

刪除和改名
#include <stdio.h>
int remove(const char *pathname);
int rename(const char *oldpath, const char *newpath);
使用臨時檔案(不建議使用以下兩個函式)
#include <stdio.h>
FILE *tmpfile(void);
char *tmpnam(char *s);

找到當前目錄
#include <unistd.h>
char *getcwd(char *buf, size_t size);
函式getcwd把但前目錄的絕對路徑名複製到buf中,該緩衝有size個位元組長。
改變目錄
函式chdir或fchdir都能改變當前目錄,原型:
#include <unistd.h>
int chdir(const char *path);
int fchdir(int fd);
建立和刪除目錄
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);
int rmdir(const char *pathname);
獲得目錄列表