/*设置 open 标志*/
void setBlock(int fd, int flags)
{
int val;
if ( (val = fcntl(fd, F_GETFL, 0)) < 0)
{
perror("fcntli get");
}
val |= flags;
if (fcntl(fd, F_SETFL, val) < 0)
{
perror("fcntl set");
}
}
/*清除 open 标志*/
void clrBlock(int fd, int flags)
{
int val;
if ( (val = fcntl(fd, F_GETFL, 0)) < 0 )
{
perror("fcntl get");
}
val &= ~flags;
if (fcntl(fd, F_SETFL, val) < 0)
{
perror("fcntl set");
}
}