进行linux下C/C++服务端后台开发的都知道,需要跟各种头文件打交道。 比如使用printf函数则需要引用#include <stdio.h>,使用STL的map容器则要#include ,使用socket网络编程则要#include <sys/socket.h>, 那么我考考你uint32_t是在哪个头文件定义的呢?sleep函数又是在哪个头文件?open和close是在同一个头文件里吗...
__uint32_t u32; __uint64_t u64; } epoll_data_t; struct epoll_event { __uint32_t events; /* Epoll events */ epoll_data_t data; /* User data variable */ }; event可以是以下几个宏的集合: EPOLLIN :表示对应的文件描述符可以读(包括对端SOCKET正常关闭); EPOLLOUT:表示对应的文件描述...
uint32_t htonl(uint32_t hostlong); 功能:把32位本机字节序转换成32位的网络字节序 uint16_t htons(uint16_t hostshort); 功能:把16位本机字节序转换成16位的网络字节序 uint32_t ntohl(uint32_t netlong); 功能:把32位网络字节序转换成32位的本机字节序 uint16_t ntohs(uint16_t netshort); ...
uint32_t sin6_scope_id; /* IPv6 scope-id */ }; typedef unsigned short uint16_t; // 2字节 typedef unsigned int uint32_t; 2字节 typedef uint16_t in_port_t; typedef uint32_t in_addr_t; #define __SOCKADDR_COMMON_SIZE (sizeof (unsigned short int)) 1. 2. 3. 4. 5. 6. 7...
以下接口所需头文件:#include <arpa/inet.h> uint32_t htonl(uint32_t hostint32); 功能: 将32 位主机字节序数据转换成网络字节序数据 参数: hostint32:需要转换的 32 位主机字节序数据,uint32_t 为 32 为无符号整型 返回值: 成功:返回网络字节序的值 ...
uint16_t sin_port;//为使用的port编号 struct in_addr sin_addr;//为IP 地址 unsignedchar sin_zero[8];//未使用 }; struct in_addr { uint32_t s_addr; }; 返回值:成功则返回0,失败返回-1,并设置errno,最常见的errno有以下两种: EACCES,被绑定的地址是受保护的地址,仅超级用户能够访问,比如如果...
*/staticconstchar*consttask_state_array[]={"R (running)",/* 0 */"S (sleeping)",/* 1 */"D (disk sleep)",/* 2 */"T (stopped)",/* 4 */"t (tracing stop)",/* 8 */"X (dead)",/* 16 */"Z (zombie)",/* 32 */}; ...
FD_CLR()这个函数用来将bitmap(fd_set )中的某个bit清0,在客户端异常退出时就会用到这个函数,将fd从fd_set中删除。 FD_ISSET()用来判断某个bit是否被置1了,也就是判断某个fd是否在fd_set中。 FD_SET()这个函数用来将某个fd加入fd_set中,当客户端新加入连接时就会使用到这个函数。3...
int 是 long 还是 short 有分歧。现在的 一般编译器 默认int 是 long int, 是 32 位。 unsigned int 是 32位 无符号整型。uint32_t 看起来更明确,u 是 unsigned, int32 是 32 位整型,t 是 type。这样定义也便于今后发展,例如 uint64_t, uint128_t. 可扩展到 64位,128位。