一、标准I/O相关函数
函数 | 描述 |
---|---|
int fwide(FILE *fp, int mode); | 位于:<wchar.h>; 功能:设置流的定向; 返回:若流是宽定向的,返回正值;若流是字节定向的,返回负值;若流是未定向的,返回 0。 |
void setbuf(FILE *fp, char *buf); | 位于:<stdio.h>; 功能:更改缓冲类型。 |
void setvbuf(FILE *fp, char *buf, int mode, size_t size); | 位于:<stdio.h>; 功能:更改缓冲类型;>br>返回:成功返回0, 失败返回非0; mode参数可能的值1。 |
int fflush(FILE *fp); | 位于:<stdio.h>; 功能:强制刷新缓冲区 返回:成功返回0,失败返回EOF。 |
FILE *fopen(const char *pathname, const char *type); | 位于:<stdio.h>; 功能:打开指定路径的一个文件; 返回:成功返回文件指针,失败返回NILL。 |
FILE *freopen(const char *pathname, const char *type, FILE *fp); | 位于:<stdio.h>; 功能:在一个指定的流上打开一个文件,若文件已经打开,则先关闭流。若改流已经定向,则使用freopen清除该定向。一般用户将一个指定文件打开为一个预定义的流:标准输入,标准输入,标准错误; 返回:成功返回文件指针,失败返回NILL。 |
FILE *fdopen(int fd, const char *type); | 位于:<stdio.h>; 功能:取一个已有的文件描述符,并使一个标准I/O流与该描述符相结合; 返回:成功返回文件指针,失败返回NILL。 |
int fclose(FILE *fp); | 位于:<stdio.h>; 功能:关闭一个已打开的流; 返回:成功返回0,失败返回EOF。 |
int getc(FILE *fp); | 位于:<stdio.h>; 功能:每次从指定文件读取一个字符; 返回:成功返回下一个字符,若已经到达文件尾端或出错,返回EOF; |
int fgetc(FILE *fp); | 位于:<stdio.h>; 功能:每次从指定文件读取一个字符; 返回:成功返回下一个字符,若已经到达文件尾端或出错,返回EOF; |
int getchar(void); | 位于:<stdio.h>; 功能:每次从指定文件读取一个字符; 返回:成功返回下一个字符,若已经到达文件尾端或出错,返回EOF。 |
int ferror(FILE *fp); | 位于:<stdio.h>; 功能:测试给定流 stream 的错误标识符; 返回:如果设置了与流关联的错误标识符,该函数返回一个非零值,否则返回一个零值。 |
int feof(FILE *fp); | 位于:<stdio.h>; 功能:测试给定流 stream 的文件结束标识符; 返回:当设置了与流关联的文件结束标识符时,该函数返回一个非零值,否则返回零。 |
int clearerr(FILE *fp); | 位于:<stdio.h>; 功能:清除给定流 stream 的文件结束和错误标识符; |
int ferror(FILE *fp); | 位于:<stdio.h>; 把字符 char(一个无符号字符)推入到指定的流 stream 中,以便它是下一个被读取到的字符; 如果成功,则返回被推入的字符,否则返回 EOF,且流 stream 保持不变。 |
int putc(int char, FILE *stream); | 位于:<stdio.h>; 功能:把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动; 返回:成功返回c,失败返回EOF。 |
int fputc(int char, FILE *stream); | 位于:<stdio.h>; 功能:把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动; 返回:成功返回c,失败返回EOF。 |
int putchar(int char, FILE *stream); | 位于:<stdio.h>; 功能:把参数 char 指定的字符(一个无符号字符)写入到指定的流 stream 中,并把位置标识符往前移动; 返回:成功返回c,失败返回EOF。 |
char *fgets(char *str, int n, FILE *stream) ; | 位于:<stdio.h>; 功能:从指定的流 stream 读取一行,并把它存储在 str 所指向的字符串内。当读取 (n-1) 个字符时,或者读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定; 返回:如果成功,该函数返回相同的 str 参数。如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,并返回一个空指针。如果发生错误,返回一个空指针。 |
char *gets(char *str); | 位于:<stdio.h>; 功能:从标准输入 stdin 读取一行,并把它存储在 str 所指向的字符串中。当读取到换行符时,或者到达文件末尾时,它会停止,具体视情况而定; 返回:如果成功,该函数返回 str。如果发生错误或者到达文件末尾时还未读取任何字符,则返回 NULL。 |
int fputs(const char *str, FILE *stream) ; | 位于:<stdio.h>; 功能:把字符串写入到指定的流 stream 中,但不包括空字符; 返回:该函数返回一个非负值,如果发生错误则返回 EOF。 |
int puts(const char *str) ; | 位于:<stdio.h>; 功能:把一个字符串写入到标准输出 stdout,直到空字符,但不包括空字符。换行符会被追加到输出中; 返回:把一个字符串写入到标准输出 stdout,直到空字符,但不包括空字符。换行符会被追加到输出中。 |
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) ; | 位于:<stdio.h>; 功能:从给定流 stream 读取数据到 ptr 所指向的数组中; 返回:成功读取的元素总数会以 size_t 对象返回,size_t 对象是一个整型数据类型。如果总数与 nmemb 参数不同,则可能发生了一个错误或者到达了文件末尾。 |
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) ; | 位于:<stdio.h>; 功能:把 ptr 所指向的数组中的数据写入到给定流 stream 中; 返回:如果成功,该函数返回一个 size_t 对象,表示元素的总数,该对象是一个整型数据类型。如果该数字与 nmemb 参数不同,则会显示一个错误。 |
long int ftell(FILE *stream) ; | 位于:<stdio.h>; 功能:返回给定流 stream 的当前文件位置; 返回:该函数返回位置标识符的当前值。如果发生错误,则返回 -1L,全局变量 errno 被设置为一个正值。 |
int fseek(FILE *stream, long int offset, int whence); | 位于:<stdio.h>; 功能:设置流 stream 的文件位置为给定的偏移 offset,参数 offset 意味着从给定的 whence 位置查找的字节数; 返回:如果成功,则该函数返回零,否则返回非零值。 |
void rewind(FILE *stream); | 位于:<stdio.h>; 功能:;设置文件位置为给定流 stream 的文件的开头。 |
int fgetpos(FILE *stream, fpos_t *pos) ; | 位于:<stdio.h>; 功能:获取流 stream 的当前文件位置,并把它写入到 pos; 返回:如果成功,该函数返回零。如果发生错误,则返回非零值。 |
int fsetpos(FILE *stream, const fpos_t *pos); | 位于:<stdio.h>; 功能:设置给定流 stream 的文件位置为给定的位置。参数 pos 是由函数 fgetpos 给定的位置; 返回:如果成功,该函数返回零值,否则返回非零值,并设置全局变量 errno 为一个正值,该值可通过 perror 来解释。 |
int pr<font color=#c678dd>intf(const char *format, …); | 位于:<stdio.h>; 功能:发送格式化输出到标准输出 stdout; 返回:如果成功,则返回写入的字符总数,否则返回一个负数。 |
int fpr<font color=#c678dd>intf(FILE *stream, const char *format, …); | 位于:<stdio.h>; 功能:发送格式化输出到流 stream 中; 返回:如果成功,则返回写入的字符总数,否则返回一个负数。 |
int dpr<font color=#c678dd>intf(int fd, const char *format, …); | 位于:<stdio.h>; 功能:发送格式化输出到流 stream 中; 返回:如果成功,则返回写入的字符总数,否则返回一个负数。 |
int spr<font color=#c678dd>intf(char *str, const char *format, …); | 位于:<stdio.h>; 功能:发送格式化输出到 str 所指向的字符串; 返回:如果成功,则返回写入的字符总数,不包括字符串追加在字符串末尾的空字符。如果失败,则返回一个负数。 |
int snpr<font color=#c678dd>intf(char *str, size_t size, const char *format, …) ; | 位于:<stdio.h>; 功能: 设将可变参数(…)按照 format 格式化成字符串,并将字符串复制到 str 中,size 为要写入的字符的最大数目,超过 size 会被截断; 返回:若缓冲区足够大,返回将要存入数组的字符数;若编码出错,返回负值。 |
int scanf(const char *format, …); | 位于:<stdio.h>; 功能: 从标准输入 stdin 读取格式化输入; 返回:如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。 |
int fscanf(FILE *stream, const char *format, …); | 位于:<stdio.h>; 功能: 从流 stream 读取格式化输入; 返回:如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。 |
int sscanf(const char *str, const char *format, …); | 位于:<stdio.h>; 功能: 从字符串读取格式化输入; 返回:如果成功,该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误,则返回 EOF。 |
char *tmpnam(char *str) ; | 位于:<stdio.h>; 功能:生成并返回一个有效的临时文件名,该文件名之前是不存在的。如果 str 为空,则只会返回临时文件名; 返回:指向唯一路径名的指针。 |
FILE *tmpfile(void); | 位于:<stdio.h>; 功能:以二进制更新模式(wb+)创建临时文件。被创建的临时文件会在流关闭的时候或者在程序终止的时候自动删除; 返回:如果成功,该函数返回一个指向被创建的临时文件的流指针。如果文件未被创建,则返回 NULL。 |
FILE *fmemopen(void *buf, size_t size, const char *mode);; | 位于:<stdio.h>; 功能:创建一个会议流; 返回:成功。 |
mode参数可能的值:
_IOFBF
:全缓冲;_IOLBF
:行缓冲;_IONBF
:不带缓冲。 ↩︎