之前写C代码的时候,头文件都是复制粘贴过来的,时间久了,发现想自己手写代码的时候都不知道要包含哪些头文件了,所以稍微整理下。

在C语言中#include <string.h>就是头文件,它就是说明这个源码文件需要用到string标准库,.h可以看作是英文head,所以叫做XX头文件。

ANSI C 标准共定义了 15 个头文件,称为“C标准库”,所有的编译器都必须支持。

<stdio.h>头文件定义了三个变量类型、一些宏和各种函数来执行输入和输出,这里只简单列举一些常用的:
变量:

size_t 这是无符号整数类型,它是 sizeof 关键字的结果
FILE 这是一个适合存储文件流信息的对象类型

宏:

NULL 这个宏是一个空指针常量的值
EOF 这个宏是一个表示已经到达文件结束的负整数
stderr、stdin 和 stdout 这些宏是指向 FILE 类型的指针,分别对应于标准错误、标准输入和标准输出流

函数:

FILE *fopen(const char *filename, const char *mode) 使用给定的模式 mode 打开 filename 所指向的文件
int fclose(FILE *stream) 关闭流 stream。刷新所有的缓冲区
int fprintf(FILE *stream, const char *format, ...) 发送格式化输出到流 stream 中
int printf(const char *format, ...) 发送格式化输出到标准输出 stdout
int sprintf(char *str, const char *format, ...) 发送格式化输出到字符串
int scanf(const char *format, ...) 从标准输入 stdin 读取格式化输入
int snprintf(char *str, size_t size, const char *format, ...) 格式字符串到 str 中

<stdlib.h> 头文件定义了四个变量类型、一些宏和各种通用工具函数,这里只简单列举一些常用的:
变量:

size_t

宏:

NULL

函数:

void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针
void free(void *ptr) 释放之前调用 calloc、malloc 或 realloc 所分配的内存空间
void exit(int status) 使程序正常终止

<string.h>头文件定义了一个变量类型、一个宏和各种操作字符数组的函数:
变量:

size_t

宏:

NULL

函数:

void *memcpy(void *dest, const void *src, size_t n) 从 src 复制 n 个字符到 dest
void *memset(void *str, int c, size_t n) 复制字符 c(一个无符号字符)到参数 str 所指向的字符串的前 n 个字符

<unistd.h>unistd.h是unix std的意思,是POSIX标准定义的unix类系统定义符号常量的头文件,包含了许多UNIX系统服务的函数原型:
函数:

ssize_t read(int, void *, size_t); // 读取文件使用
int unlink(const char *);
ssize_t write(int, const void *, size_t); // 写文件
int usleep(useconds_t); // 进程休眠,单位为微妙
unsigned sleep(unsigned); // 进程休眠,单位为秒,在Windows下#include <windows.h> and Sleep(1000); => 1000 milliseconds 
int access(const char *, int); // 获取文件的权限
unsigned alarm(unsigned);
int chdir(const char *);
int chown(const char *, uid_t, gid_t);
int close(int); // 关闭文件
size_t confstr(int, char *, size_t);
void _exit(int);
pid_t fork(void);

<sys/un.h>定义了UNIX domain sockets

<sys/types.h>定义了一些数据类型:

pid_t Used for process IDs and process group IDs
pthread_t Used to identify a thread
size_t Used for sizes of objects
uid_t Used for user IDs

<netinet/in.h> 定义了Internet address family

标签: none

评论已关闭