select函数为什么不阻塞 想不明白
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{
int filed;
int i = 0;
int max = 0;
filed = open("2.cc", O_RDONLY);
if(-1 == filed)
{
fprintf(stderr, "111111");
return -1;
}
max = filed;
fd_set writeset;//longÀàÐ͵ÄÊýÖé
FD_ZERO(&writeset);
FD_SET(filed, &writeset);
int s;
while(1)
{
s=select(filed + 1, NULL, &writeset, NULL, NULL);
if(s == -1)
{
fprintf(stderr, "s ³ö´íÎóÀ");
}
if(i == 5)
{
//break;
}
if(FD_ISSET(filed, &writeset))
{
++i;
fprintf(stderr, "i: %d\n", i);
}
}
close(filed);
}
//g++ 3.cc -o 3
为什么不阻塞?想不明白
#include <stdio.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{
int filed;
int i = 0;
int max = 0;
filed = open("2.cc", O_RDONLY);
if(-1 == filed)
{
fprintf(stderr, "111111");
return -1;
}
max = filed;
fd_set writeset;//longÀàÐ͵ÄÊýÖé
FD_ZERO(&writeset);
FD_SET(filed, &writeset);
int s;
while(1)
{
s=select(filed + 1, NULL, &writeset, NULL, NULL);
if(s == -1)
{
fprintf(stderr, "s ³ö´íÎóÀ");
}
if(i == 5)
{
//break;
}
if(FD_ISSET(filed, &writeset))
{
++i;
fprintf(stderr, "i: %d\n", i);
}
}
close(filed);
}
//g++ 3.cc -o 3
为什么不阻塞?想不明白
...全文
相关推荐
Socket通信(TCP)非阻塞模式-select模型
这个范例是个基于TCP协议的非阻塞模式下的SOCKET通信,应该非常具有代表性了,分为服务器端和客户端。
SQL Server中的SELECT会阻塞SELECT吗
前言 在SQL Server中,我们知道一个SELECT语句执行过程中只会申请一些意向共享锁(IS) 与共享锁(S), 例如我使用SQL Profile跟踪会话86执行SELECT * FROM dbo.TEST WHERE OBJECT_ID =1 这个查询语句,其申请、释放的锁资源的过程如下所示: 而且从最常见的锁模式的兼容性表,我们可以看到IS锁与S锁都是兼容的,也就是说SELECT查询是不会阻塞SELECT查询的。 现有的授权模式 请求的模式 IS S U IX SIX X 意向共享 (IS) 是 是 是 是 是
Python中使用select模块实现非阻塞的IO
主要介绍了Python中使用select模块实现非阻塞的IO,本文使用一个简单聊天室程序讲解Python中的select模块使用,需要的朋友可以参考下
linux c语言 select函数的用法
linux c语言 select函数的用法
IO中同步、异步与阻塞、非阻塞的区别
本文主要讲了IO中同步、异步与阻塞、非阻塞的区别。希望对你的学习有所帮助。



