參考的 C 語言規範
setlocale 函數的擴展
#include <locale.h>
//根據參數 category 和 locale 設置,更改或者查詢進程現場
char *setlocale(int category, const char *locale);
C 語言輸入/輸出函數
根據一個文件描述符打開一個流
#include <stdio.h>
//聯合一個流和一個文件描述符
FILE *fdopen(int fildes, const char *type);
其他文件類型函數之間的相互作用
一個單一的文件描述 可以通過 流 和 文件描述符 訪問
流 或是 文件描述符 被稱作 打開文件的句柄
一個打開文件可以有多個句柄
句柄可以在不影響重要的打開文件說明的情況下被創建和刪除
創建如 fcntl().dup(),fdopen(),fileno(),fork()
刪除如 fclose(),close()
fopen() 隨着 open() 的調用分配描述符,基礎函數爲open()
fclose() :
該函數完成在與 FILE 流相關的,對文件描述符的 close() 功能
freopen():
具有 fclose()和 fopen()的特點
fflush():
如 流 可寫 或 緩存數據還沒有寫入文件 時,該函數標記下 基礎文件 st_ctime 和 st_mtime 的值
fgetc(), fgets(), fread(), getc(), getchar(), gets(), scanf(), fscanf():
這些函數標記更新的 st_atime 值, 基礎函數是 read() 和 lseek()
fputc(),fputs(),fwrite(),putc(),putchar(),puts(),printf(),fprintf():
從以上任一個函數的成功執行到下一個調用(在同一個流中的 fflush()或 fclose() 或 exit()或 abort() ),記下更新的 st_ctime 和 st_mtime 值。基礎函數是 write()和lseek()
fseek(), rewind():
如 流 可寫 或者 緩存數據還沒有寫入文件 時,該函數標記下文件更新的st_ctime 和 st_mtime 值。基礎函數是lseek() 和 write()
perror():
記下與標準錯誤流相關的文件
tmpfile():
fopen() 執行後爲 文件分配文件描述符
ftell():
執行 fflush() 後 執行該函數的結果與 執行 fflush() 前 執行該函數的結果相同, 基礎文件是 lseek()
exit(), abort():
exit() 終止進程的時候要關閉流,abort() 只終止進程對流沒有影響
文件操作-----remove()函數
該函數和 unlink()函數的功能一樣
其他的 C 函數
非局部跳轉
#include <setjmp.h>
// sigsetjmp()宏要與標準中 setjmp()宏的定義一致
//如 savemask != 0,sigsetjmp()就要保存當前的信號 標記爲 調用環境的一部分
// Siglongjmp()同理
int sigsetjmp(sigjmp_buf env, int savemask);
void siglongjmp(sigjmp_buf env, int val);
設置時間域
#include <time.h>
//用環境變量 TZ 的值來設定時間變化信息
void tzset(void);