基于 C 语言的服务 setlocale函数的扩展 fdopen 非局部跳转 设置时间域 参考的 C 语言规范 C 语言输入/输出函数 其他文件类型函数之间的相互作用 其他的 C 函数
参考的 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);