Provided by: manpages-zh_1.6.3.2-1_all bug

NAME

       stdio - 標準輸入輸出庫函數

SYNOPSIS 總覽

       #include <stdio.h>

       FILE *stdin;
       FILE *stdout;
       FILE *stderr;

DESCRIPTION 描述

       標註                                                                                   I/O
       庫函數提供了一個簡單而有效的,帶緩衝的流輸出輸出接口。輸入和輸出被映射爲邏輯的數據流,物理的
       I/O 特性則被隱藏起來。庫中包含的函數與宏列在下面;更多信息可以從獨立的 man 手冊頁中得到。

       將一個流關聯到一個外部文件     (可能是一個物理設備)     的方法是打開     (    opening    )
       這個文件,其中可能牽涉到創建一個新文件。創建已有的文件使得文件中已有的內容被丟棄。如果文件支持定位請求
       (例如磁盤文件;但終端不是這樣),那麼一個與文件關聯的定位標記  (  file position indicator )
       被定位到文件的起始                                                                      (0
       字節),除非以追加模式打開文件。使用追加模式時,究竟定位標記位於文件的開始還是結束是沒有指定的。定位標記由後續的讀、寫和定位請求來維護。從流中輸入時,就如同字符是連續地成功調用了函數
       fgetc(3) 而讀入的;產生輸出時,就如同所有字符是連續地成功調用了函數 fputc(3) 而輸出的。

       將一個流與一個與之關聯的文件斷開的辦法是關閉            (            closing             )
       這個文件。在流與文件斷開之前,輸出流被刷新
       (任何未寫入的緩衝的內容都被傳輸給主機環境)。在文件被關閉之後,指向                    FILE
       對象的指針的值是不確定的 (無用數據)。

       一個文件可以繼續被相同的或是不同的程序實體再次打開,它的內容可以被恢復或者修改
       (如果它可以被重定位到文件開始的話)。如果   main   函數返回到它最初的調用者,或者調用了函數
       exit(3)                                           ,在程序終止前,所有打開的文件都將被關閉
       (因此所有的輸出流都被刷新)。其他終止程序的方法,例如 abort(3) 不會進行正常的關閉文件操作。

       在程序啓動時,會預先定義三個文本流,它們不需要顯式地打開 — 標準輸入  (用於讀入常規內容),—
       標準輸出      (用於輸出常規內容),以及     標準錯誤     (用於輸出診斷信息)。這些流的縮寫是
       stdin,stdoutstderr
       。在打開時,標準錯誤流不會完全緩衝;當且僅當流不是一個交互的設備時,標準輸入和標準輸出流才被完全緩衝。

       指向終端設備的輸出流總是默認使用行緩衝;未定的輸出總是在指向一個終端設備的輸入流被讀取時自動被寫入。如果在一個輸出終端上打印了一行的一部分,然後運行了大量的計算後,應當在退出和計算前
       fflush(3) 標準輸出,使得輸出可以顯示出來。(?)

       標準輸入輸出庫   stdio   是函數庫   libc   的一部分,需要時可以被編譯器   cc(1)  和  pc(1)
       自動加載。下列手冊頁的                            SYNOPSIS                            總覽
       段落會指出要包含哪些文件,函數定義的格式,以及它們受到哪些外部變量的影響。

       下列爲已定義的宏;如果不用    #undef    取消這些名稱的當前定義的話,是不能重新使用它們的:
       BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX,  L_cuserid,  L_ctermid,  L_tmpnam,  NULL,  SEEK_END,
       SEEK_SET, SEE_CUR, TMP_MAX, clearerr, feof, ferror, fileno, fropen, fwopen, getc, getchar,
       putc,  putchar,  stderr,  stdin,  stdout.   另外,還有與這些宏的功能對應的,函數形式的版本
       feof,     ferror,     clearerr,     fileno,    getc,    getchar,    putc,    和    putchar
       ,在顯式地取消宏的定義時,可以使用它們。

LIST OF FUNCTIONS 函數列表

       Function 函數
                 Description 描述

       clearerr  檢測並重置流狀態

       fclose    關閉流

       fdopen    打開流

       feof      檢測並重置流狀態

       ferror    檢測並重置流狀態

       fflush    刷新流

       fgetc     從輸入流中獲取下一個字符或詞

       fgetpos   重定位流

       fgets     從流中獲取一行

       fileno    返回流參數的整數形式的描述符

       fopen     打開流

       fprintf   按照格式輸出常規內容

       fpurge    刷新流

       fputc     向流輸出一個字符或詞

       fputs     向流輸出一行

       fread     二進制輸入/輸出

       freopen   打開流

       fropen    打開流

       fscanf    按照格式輸入常規內容

       fseek     重定位流

       fsetpos   重定位流

       ftell     重定位流

       fwrite    二進制輸入/輸出

       getc      從輸入流中獲取下一個字符或詞

       getchar   從輸入流中獲取下一個字符或詞

       gets      從流中獲取一行

       getw      從輸入流中獲取下一個字符或詞

       mktemp    創建 (唯一的) 臨時文件名

       perror    系統錯誤消息

       printf    按照格式輸出常規內容

       putc      向流輸出一個字符或詞

       putchar   向流輸出一個字符或詞

       puts      向流輸出一行

       putw      向流輸出一個字符或詞

       remove    刪除目錄項

       rewind    重定位流

       scanf     按照格式輸入常規內容

       setbuf    流緩衝操作

       setbuffer 流緩衝操作

       setlinebuf
                 流緩衝操作

       setvbuf   流緩衝操作

       sprintf   按照格式輸出常規內容

       sscanf    按照格式輸入常規內容

       strerror  系統錯誤消息

       sys_errlist
                 系統錯誤消息

       sys_nerr  系統錯誤消息

       tempnam   臨時文件控制

       tmpfile   臨時文件控制

       tmpnam    臨時文件控制

       ungetc    向輸入流中退回字符

       vfprintf  按照格式輸出常規內容

       vfscanf   按照格式輸入常規內容

       vprintf   按照格式輸出常規內容

       vscanf    按照格式輸入常規內容

       vsprintf  按照格式輸出常規內容

       vsscanf   按照格式輸入常規內容

CONFORMING TO 標準參考

       函數庫 stdio 遵循 ANSI X3.159-1989 (``ANSI C'') 標準。

SEE ALSO 參見

       open(2), close(2), read(2), write(2), stdout(3)

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh

                                            2001-12-26                                   STDIO(3)