1、设置进程属性,不继承socket的内容
int val=fcntl(server_fd,F_GETFD);
val|=FD_CLOEXEC;
fcntl(server_fd,F_SETFD,val);
2、select机制
三种状态:
1、以NULL作为时间结果,则select置于阻塞状态,一定要等到监视的文件描叙符发生变化为止。
2、以0为时间,则为纯粹的非阻塞函数
3、时间大于0,select在规定时间内阻塞,超时时间内,有事件就返回,超时也返回。
没有循环的效果。
3、inet_ntoa 将网络地址(struct in_addr)转换成"."点隔的字符串格式
in_addr 表示一个32为的IPv4地址
struct in_addr {
in_addr_t s_addr;
};
in_addr_t 一般为32位的unsigned int
4、sscanf的用处很大,支持正则表达式
char a[10] = "192.168.0.12";
char b[4] = {0};
sscanf(a,"%d.%d.%d.%d",&b[0],&b[1],&b[2],&b[3]);
sscanf(a,"%d.%d.%d.%d",&b[3],&b[2],&b[1],&b[0]);
二者的结果不同:第一个b[0]=192,b[1]=168,b[2]=0,b[3]=12
第二个b[0]=12,b[1]=0,b[2]=0,b[3]=0
为什么,还不知道。