LINUX(socket)网络编程部分头文件归纳解释
在linux网络编程学习阶段,相信你所看到的书中或者博客中都会出现大量的头文件,这篇博客会对用到的头文件进行说明归纳,让你更清晰快捷的了解他们:
1.unistd.h
unistd.h 是 C 和 C++ 程序设计语言中提供对 POSIX 操作系统 API 的访问功能的头文件的名称。该头文件由
POSIX.1 标准(单一UNIX规范的基础)提出,故所有遵循该标准的操作系统和编译器均应提供该头文件(如
Unix 的所有官方版本,包括 Mac OS X、Linux 等)。
对于类 Unix 系统,unistd.h 中所定义的接口通常都是大量针对系统调用的封装(英语:wrapper functions),如 fork、pipe 以及各种 I/O 原语(read、write、close 等等)。
2.sys/socket.h
提供socket操作的各种接口函数,例如创建套接字函数,绑定,监听,连接等等;还提供了socket的各种数据结构,比如各种地址结构体,用于socket的函数操作。
如图是man手册提供关于socket.h头文件的函数参数等详细图片:
3.netinet/in.h:定义数据结构sockaddr_in
等套接字地址结构
struct
sockaddr_in
{
short
sin_family;
//
2 bytes e.g. AF_INET, AF_INET6
unsigned
short
sin_port;
//
2 bytes e.g. htons(3490)
struct
in_addr
sin_addr;
//
4 bytes see struct in_addr, below
char
sin_zero[8];
//
8 bytes zero this if you want to
};