现在的位置: 首页 > 综合 > 正文

The Standard C Library ————– 经典的基础

2013年08月27日 ⁄ 综合 ⁄ 共 3366字 ⁄ 字号 评论关闭

The Standard C Library

--------------经典的基础

C的标志库函数是学习和使用C语言的基础,是编写经典C程序的基础,是学习其他计算机知识的基础.C标志库中一共包含了15个头文件:

<assert.h> <ctype.h> <stdio.h> <stdlib.h> <string.h> <limits.h> <float.h> <time.h>

<math.h> <setjmp.h> <signal.h> <stdarg.h> <stddef.h> <errno.h> <locale.h>

1<assert.h>

NDEBUG

    NDEBUG宏是调试开关,当使用#include NDEBUG时程序为非调试状态,这种状态下调试宏assert不起作用。

assert

    调试宏assert只有在程序处于调试状态下才发挥作用,它的使用形式如下:assert(expression);当条件为假时会在屏幕中输出如下的调试信息:“Assertion failed:expression, file xyz, line nnn”,其中xypassert所在的文件名,nnnassert在该文件中的位置。

assert宏还有许多用法,请参看《Writing Clean Code》第二章设计并使用断言。

 

2<stdio.h>

<stdio.h>下面的类型,宏,函数都是分类的

其他:

    size_t sizeof返回的值

 

    NULL   空指针

文件:

    FILE   文件的类型

    fpos_t 文件中指针的位置

 

    EOF    文件末尾<0

    FILENAME_MAX  文件名最大值>0

    FOPEN_MAX     同时打开文件的最大值>8

    SEEK_SET      文件头

    SEEK_CUR       文件当前位置

    SEEK_END      文件末尾

 

打开文件

FILE *fopen(const char *filename,const char *mode);

    更改当前流相关的文件

    FILE *freopen(const char *filename,const char *mode,FILE *stream);

关闭文件

    int fclose(FILE *stream);

 

    清除流中的错误标志或文件末尾标志

    void clearerr(FILE *stream);

    测试流上的文件末尾标志

    int feof(FILE *stream);

    测试流上的错误标志

    int ferror(FILE *stream);

 

    将一个字符放回到流中

    int ungetc(int c, FILE *stream);

    从流中读一个字符

    int fgetc(FILE *stream);

    int getc(FILE *stream);/* fgetc相同但是可以用宏实现该函数 */

写一个字符到一个流

    int fputc(int c, FILE *stream);

    int putc(int c, FILE *stream);

    从流中获取一个字符串

    char *fgets(char *s, int n, FILE *stream);

    写一个字符串到一个流

    int fputs(const char *s, FILE *stream);

    打印一个格式化数据到一个流

    int fprintf(FILE *stream,const char *format, ...);

    使用一个参量列表指针格式化到流的数据

    int vfprintf(FILE *stream,const char *format, va_list ap);

    从一个流中读取格式化数据

    int fscanf(FILE *stream, const char *format, ...);

   

    从一个流中读数据

    size_t fread(char *buffer,size_t size,size_t count,FILE *stream);

    写数据到一个流

    int fwrite(const char *buffer, size_t size, size_t count,

FILE *stream);

 

    获取流的文件位置指示符

    int fgetpos(FILE *stream, fpos_t *pos);

    设置流位置指示符

    int fsetpos(FILE *stream, const fpos_t *pos);

    移动文件指针到一个指定的位置

    int fseek(FILE *stream, long offset, int origin);

    获得文件指针相对于文件头的偏移量

    long ftell(FILE *stream);

    重新定位一个文件指针到文件开头

    void rewind(FILE *steam);

 

    删除一个文件

    int remove(const char *path);

    更改一个文件或目录

    int rename(const char *oldname, const char *newname);

    缓冲区:

           _IOFBF

           _IOLBF

           _IONBF        缓冲区类型

           BUFSIZE        缓冲区尺寸>=256

 

    刷新一个流并清空与流相关的缓冲区的内容

    int fflush(FILE *stream);

    控制流的缓冲区,已经被setvbuf代替

    void setbuf(FILE *stream, char *buffer);

    控制流的缓冲区类型和缓冲区大小

    int setvbuf(FILE *stream, char *buffer, int mode, size_t size);

 

    将一个格式化数据写入一个字符串

    int sprintf(char *buffer, const char *format, ...);

    从字符串中读格式化数据

    int sscanf(const char *buffer, const char *format, ...);

    从参量列表指针格式化到字符串

    int vsprintf(char *buffer, const char *format, va_list ap);

临时文件

       L_tmpnam   临时文件名长度>0

       TMP_MAX    产生唯一文件名的最大数目>=25

 

以二进制读写的方式建立一个临时文件

FILE *tmpfile(void);

建立一个临时文件名

char *tmpname(char *string);

    标准流:

           stdin  标准输入流

           stdout 标准输出流

           stderr 标准错误输出流

   

    stdin获得一个字符

    int getchar(void);

    把字符写道stdout

    int putchar(int c);

 

    stdin中获取一行

    char *gets(char *buffer);

    写一个字符串到stdout

    int puts(const char *string);

 

    打印一个错误消息到stderr

    void perror(const char *error);

 

    打印格式化数据到stdout

    int printf(const char *format, ...);

    stdin读格式化数据

    int scanf(const char *format, ...);

    从参量列表指针格式化到stdout

    int vprintf(const char *format, va_list ap);

 

3<stdlib.h>

    <stdlib.h>中定义的函数都是工具类的函数可以分类学习

    其他:

       NULL

       size_t

   

    执行一个系统命令

    int system(const char *command);

    程序控制:

       EXIT_SUCCESS

       EXIT_FAILURE  exit函数的推出参数

      

    终止当前进程并返回一个错误代码

    void abort(void);

    在推出时执行指定

抱歉!评论已关闭.