<stdio.h> - C語言標準庫


stdio.h頭定義了三個變數的型別,幾個巨集及各種功能進行輸入和輸出。

庫變數

以下是在頭stdio.h中定義的變數型別:

S.N. 變數和說明
1 size_t 
這是一個無符號整數型別 sizeof關鍵字的結果。
2 FILE 
這是一個物件的型別,適合用於儲存資訊的一個檔案流。
3 fpos_t 
這是一個物件型別適用於儲存在一個檔案中的任何位置。

庫巨集

以下是在頭stdio.h中定義的巨集:

S.N. 巨集與說明
1 NULL
這個巨集是一個空指標常數的值。
2 _IOFBF, _IOLBF and _IONBF 
這些都是巨集擴大整型常數表示式具有鮮明的值和適合使用setvbuf函式的第三個引數。
3 BUFSIZ
這個巨集是一個整數,它表示函式setbuf函式所使用的緩衝區的大小。
4 EOFM 
此巨集是一個負整數,表示一個結束-已到達檔案結尾。
5 FOPEN_MAX 
此巨集是一個整數,代表檔案的最大數目,該系統可以保證,可以同時開啟。
6 FILENAME_MAX 
這個巨集是一個整數,表示一個字元陣列,適合持有時間最長的可能的檔案名長度最長。如果實現沒有任何限制,那麼這個值應該是推薦的最大值。
7 L_tmpnam 
這個巨集是一個整數,表示適合舉行由tmpnam函式建立的臨時檔案名可能的最長的一個char陣列的長度最長。
8 SEEK_CUR, SEEK_END, and SEEK_SET 
這些巨集用於的fseek 函式定位在一個檔案中的不同位置。
9 TMP_MAX 
這個巨集是唯一的檔案名的功能使用tmpnam可以生成的最大數量。
10 stderr, stdin, and stdout 
這些巨集的檔案型別對應的標準誤差,標準輸入,標準輸出流的指標。

庫函式

以下是在頭stdio.h中定義的函式:

S.N. 函式及說明
1 void clearerr(FILE *stream)
Clears the end-of-file and error indicators for the given stream.
2 int fclose(FILE *stream)
Closes the stream. All buffers are flushed.
3 int feof(FILE *stream)
Tests the end-of-file indicator for the given stream.
4 int ferror(FILE *stream)
Tests the error indicator for the given stream.
5 int fflush(FILE *stream)
Flushes the output buffer of a stream.
6 int fgetpos(FILE *stream, fpos_t *pos)
Gets the current file position of the stream and writes it to pos.
7 FILE *fopen(const char *filename, const char *mode)
Opens the filename yiibaied to by filename using the given mode.
8 size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
Reads data from the given stream into the array yiibaied to by ptr.
9 FILE *freopen(const char *filename, const char *mode, FILE *stream)
Associates a new filename with the given open stream and same time closing the old file in stream.
10 int fseek(FILE *stream, long int offset, int whence)
Sets the file position of the stream to the given offset. The argument offset signifies the number of bytes to seek from the given whence position.
11 int fsetpos(FILE *stream, const fpos_t *pos)
設定到給定位置的給定的流檔案中的位置。引數pos 是由函式的fgetpos 給定的位置。
12 long int ftell(FILE *stream)
返回給定流的當前檔案位置。
13 size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
Writes data from the array yiibaied to by ptr to the given stream.
14 int remove(const char *filename)
Deletes the given filename so that it is no longer accessible.
15 int rename(const char *old_filename, const char *new_filename)
Causes the filename referred to by old_filename to be changed to new_filename.
16 void rewind(FILE *stream)
Sets the file position to the beginning of the file of the given stream.
17 void setbuf(FILE *stream, char *buffer)
Defines how a stream should be buffered.
18 int setvbuf(FILE *stream, char *buffer, int mode, size_t size)
Another function to define how a stream should be buffered.
19 FILE *tmpfile(void)
Creates a temporary file in binary update mode (wb+).
20 char *tmpnam(char *str)
Generates and returns a valid temporary filename which does not exist.
21 int fprintf(FILE *stream, const char *format, ...)
Sends formatted output to a stream.
22 int printf(const char *format, ...)
Sends formatted output to stdout.
23 int sprintf(char *str, const char *format, ...)
Sends formatted output to a string.
24 int vfprintf(FILE *stream, const char *format, va_list arg)
Sends formatted output to a stream using an argument list.
25 int vprintf(const char *format, va_list arg)
Sends formatted output to stdout using an argument list.
26 int vsprintf(char *str, const char *format, va_list arg)
Sends formatted output to a string using an argument list.
27 int fscanf(FILE *stream, const char *format, ...)
Reads formatted input from a stream.
28 int scanf(const char *format, ...)
Reads formatted input from stdin.
29 int sscanf(const char *str, const char *format, ...)
Reads formatted input from a string.
30 int fgetc(FILE *stream)
Gets the next character (an unsigned char) from the specified stream and advances the position indicator for the stream.
31 char *fgets(char *str, int n, FILE *stream)
Reads a line from the specified stream and stores it into the string yiibaied to by str. It stops when either (n-1) characters are read, the newline character is read, or the end-of-file is reached, whichever comes first.
32 int fputc(int char, FILE *stream)
Writes a character (an unsigned char) specified by the argument char to the specified stream and advances the position indicator for the stream.
33 int fputs(const char *str, FILE *stream)
Writes a string to the specified stream up to but not including the null character.
34 int getc(FILE *stream)
獲取下一個字元(unsigned char型別)從指定的流,並將流的指標位置。
35 int getchar(void)
從標準輸入獲取一個字元(unsigned char型別)。
36 char *gets(char *str)
從標準輸入讀取一行,並將其儲存到由str指向的字串。它時停止讀取換行符或檔案結束時達成,以先到為準。
37 int putc(int char, FILE *stream)
寫入字元到指定的流,並將流的指標位置的引數指定一個字元(unsigned char型別)。
38 int putchar(int char)
寫一個字元(unsigned char型別)的引數指定的字元輸出到stdout。
39 int puts(const char *str)
將一個字串寫入到stdout,但不包括空字元。一個換行符被追加到輸出。
40 int ungetc(int char, FILE *stream)
將字元的字元(unsigned char型別)到指定的流,這是讀取的下一字元。
41 void perror(const char *str)
列印一個描述性的錯誤訊息到stderr。首先列印字串str接著一個冒號,然後是一個空格。