引言
在C言語編程中,文件操縱是一項基本且重要的技能。經由過程文件操縱,我們可能將數據長久化存儲,實現數據的長久化保存跟外部數據交互。FILE東西作為C言語文件操縱的核心,承載著高效文件操縱跟輕鬆實現數據讀寫的重要任務。本文將深刻揭秘FILE東西的神奇力量,幫助讀者更好地控制C言語文件操縱。
FILE東西概述
FILE東西是C言語頂用於文件操縱的構造體範例,它包含了文件操縱的須要信息,如文件指針、文件狀況標記、緩衝區等。在C言語中,每個打開的文件都會對應一個FILE東西。
FILE構造體
struct _iobuf {
char *ptr;
int cnt;
unsigned char *base;
int flag;
int fd;
void (*seek)(void *, long, int);
void (*read)(void *, unsigned long, void *);
void (*write)(void *, unsigned long, void *);
};
typedef struct _iobuf FILE;
FILE指針
FILE指針是FILE構造體的指針範例,用於指向FILE東西。在C言語中,平日利用FILE範例的指針變數來操縱文件。
文件打開與封閉
打開文件
FILE *fopen(const char *path, const char *mode);
fopen函數用於打開一個文件,並前去一個指向FILE東西的指針。假如打開掉敗,則前去NULL。
封閉文件
int fclose(FILE *stream);
fclose函數用於封閉一個打開的文件,並開釋與之關聯的資本。
文件讀寫操縱
次序讀寫
寫入文件
int fputs(const char *str, FILE *stream);
fputs函數用於將一個字元串寫入文件。
讀取文件
char *fgets(char *str, int n, FILE *stream);
fgets函數用於從文件中讀取一行數據。
隨機讀寫
定位文件指針
long ftell(FILE *stream);
void fseek(FILE *stream, long offset, int whence);
void rewind(FILE *stream);
ftell函數用於獲取文件指針以後地位的偏移量。fseek函數用於將文件指針挪動到指定的地位。rewind函數用於將文件指針挪動到文件掃尾。
讀取數據
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
fread函數用於從文件中讀取數據。
寫入數據
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
fwrite函數用於將數據寫入文件。
總結
FILE東西是C言語文件操縱的核心,它承載著高效文件操縱跟輕鬆實現數據讀寫的重要任務。經由過程控制FILE東西的利用方法,我們可能更好地利用C言語停止文件操縱,實現數據的長久化保存跟外部數據交互。