当前位置: 首页 > news >正文

南京网站开发做网站做系统一样么

南京网站开发,做网站做系统一样么,怎样开发一个微信公众号,深圳房管局官网查询系统一、fcntl函数的作用 read函数是典型的阻塞模型#xff0c;当缓冲区里的数据不就绪的时候#xff0c;会一直阻塞等待。这是正常的#xff0c;因为文件描述符默认是阻塞IO#xff0c;而我们可以通过 fcntl 接口函数将文件描述符设置为非阻塞IO。 设置成非阻塞IO以后#x…一、fcntl函数的作用 read函数是典型的阻塞模型当缓冲区里的数据不就绪的时候会一直阻塞等待。这是正常的因为文件描述符默认是阻塞IO而我们可以通过 fcntl 接口函数将文件描述符设置为非阻塞IO。 设置成非阻塞IO以后read函数会一直检测数据是否就绪如果就绪就读取并返回读取到的字符数如果不就绪就返回一个错误码。 二、fcntl 函数的声明 fcntl 函数的作用是操作一个文件的文件描述符而设置成非阻塞IO只是 fcntl 函数的功能之一。 #include unistd.h #include fcntl.h int fcntl(int fd, int cmd, ... /* arg */ ); 1、参数解析 第一个参数fd指明你要操作哪个文件的文件描述符。 第二个参数cmd也就是你要对该文件描述符进行何种操作。cmd的取值不同后面追加的参数也不同。 cmd的取值 命令解析 F_DUPFD 复制一个现有的文件描述符 F_GETFD 或 F_SETFD 获得/设置文件描述符标记 F_GETFL 或 F_SETFL 获得/设置文件状态标记 F_GETOWN 或 F_SETOWN 获得/设置异步IO所有权 F_GETLK 或 F_SETLK( F_SETLKW ) 获得/设置记录锁 2、返回值解析 执行成功时不同的cmd可能会对应不同的返回值没有列举在下面的比如F_SETFL可能返回值类型为void。 执行出错时也会有不同的返回值此时可能就与cmd无关了。 三、使用fcntl 将文件描述符设置为非阻塞 1、设置非阻塞模式实现 以设置文件描述符为 0 的文件为例将文件描述符设置为非阻塞状态需要用到上述表格的第三个功能获得/设置文件状态标记。基本思路为第一步先获取到原有的文件状态第二步在原有的基础上追加一种非阻塞状态。 函数准备好以后在调用read函数之前先将 第0号文件描述符设置成非阻塞然后再调用read函数。 非阻塞模式下read函数如果发现数据尚未就绪系统是以出错的形式返回的很显然数据未就绪不算错误那么要如何区分真正的错误 和 数据未就绪时的出错呢 答案是errnoerrno是错误码正常情况下是0。当数据没有就绪的时候errno的值是11即EAGAIN 或者 EWOULDBLOCK我们可以以此判断是否真的出错了。如果你在成功时打印errno你会发现errno仍然是11因为read读取到数据的时候不会设置errno。 #include stdio.h #include fcntl.h #include unistd.h #include errno.hvoid setNonBlock(){int fl fcntl(0,F_GETFL); //获取文件描述符为0的文件状态if (fl 0){perror(fcntl);return;}fcntl(0, F_SETFL, fl | O_NONBLOCK); //追加文件描述符的状态为非阻塞 }int main(){setNonBlock(); //设置为非阻塞模式while (1){char buffer[1024];ssize_t s read(0,buffer,sizeof(buffer)-1); //非阻塞读取if (s 0){buffer[s] 0;write(1,buffer,s); //将读取到的内容打印到屏幕上printf(read success, res: %d, content: %s\n,s, buffer);}else{if(errno EAGAIN || errno EWOULDBLOCK){printf(read failed, res: %d , errno: %d\n, s , errno);}}sleep(1);}return 0; }
http://www.pierceye.com/news/689435/

相关文章:

  • 怎么制作网站首页培训心得体会总结简短
  • 商务网站建设 模板长春高端品牌网站建设
  • 做网站比较便宜办公资源网
  • 公司怎么做网页网站遵义网站设计公司
  • 网站建设毕业设计yy直播回放
  • 响应式网站有哪些2017淮南网络推广报价
  • 兰州公司网站建设网站建设筹备方案
  • 租房网站建设做一个跨境电商网站
  • 网站设计制作过程容桂做pc端网站
  • 宜昌市上海中学官网seo文章外包
  • 加强普法网站建设的通知制作婚恋网站
  • 北大荒建设集团有限公司网站网站添加在线qq聊天
  • 网站首页被k咋办上海市企业服务云登录
  • 长安镇网站建设公司大网站制作公司
  • 衡水做网站推广找谁廊坊百度推广排名优化
  • 网站建设毕业报告wordpress微信登录页面
  • 外包网站建设费用包括网站备份crm系统有哪些
  • 高端网站设计推广v信haotg8wordpress 付费后查看
  • cms管理手机网站长春做网站好的公司
  • 可信网站认证 技术支持单位沈阳又一烂尾项目复工
  • 南昌网站建设培训学校做幼儿网站的目标
  • 装饰网站建设的背景怎么做原创动漫视频网站
  • 电脑购物网站模板c2c商城网站建设二次开发
  • 自建站有哪些dz论坛网站源码
  • 湖南湘源建设工程有限公司网站牛商网网站做seo好么
  • 郑州网站制作建设南宁网站设计要多少钱
  • 网站地图制作怎么做云南建设网
  • 网站开发项目经验怎么写网站首页做一点开有动画
  • 乔拓云智能建站系统官网注册公司在哪个网站注册
  • lisp 网站开发什么是网站设计