一、fcntl
fcntl 函数用于执行各种描述符控制操作;
/* 返回值:成功取决于cmd,失败返回-1;
* 定义:
*/
#include <fcntl.h>
int fcntl(int sockfd, int cmd, /* int arg */);
/* 说明:
* 第三个参数可有可没有,根据需要给出;
*/
函数有下面5种功能:
- 复制一个现有的描述符(cmd=F_DUPFD);
- 获得/设置文件描述符标记(cmd=F_GETFD或F_SETFD);
- 获得/设置文件状态标记(cmd=F_GETFL或F_SETFL);
- 获得/设置异步I/O所有权(cmd=F_GETOWN或F_SETOWN);
- 获得/设置记录锁(cmd=F_GETLK , F_SETLK或F_SETLKW);
这里介绍如何将描述符设置为非阻塞的方法;
flags = fcntl(fd, F_