FIONREAD 判断 socket有多少数据可读[通俗易懂]

FIONREAD 判断 socket有多少数据可读[通俗易懂]Ioctl(sockfd,FIONREAD,&npend); /*checkFIONREADsupport*/检查sockfd表示的文件描述符中有多少数据可以读取

大家好,又见面了,我是你们的朋友全栈君。

Ioctl(sockfd, FIONREAD, &npend);	/* check FIONREAD support */

检查 sockfd 表示的文件描述符中有多少数据可以读取

example

#include <stdio.h>
#include <unistd.h>
#include <poll.h>
#include <sys/ioctl.h>

int main()
{
    struct pollfd poll_fd;
    poll_fd.fd=0;
    poll_fd.events=POLLIN;
 
    for(;;)
    {
        // 返回值 ret ; ret < 0 表示错误 ; ret == 0 表示超时 ; ret > 0 表示
        int ret=poll(&poll_fd,1,2000);
        if(ret<0)
        {
            perror("poll");
            continue;
        }
        if(ret==0)
        {
            printf("poll timeout!\n");
            continue;
        }
        if(poll_fd.revents==POLLIN)
        {
            char buf[1024];
            int length;
            int res = ioctl(poll_fd.fd,FIONREAD,&length);
            printf("length : [%d]\n",length);
            read(0,buf,sizeof(buf)-1);
            res = ioctl(poll_fd.fd,FIONREAD,&length);
            printf("length : [%d]\n",length);
            printf("sdin:%s",buf);
        }
    }
 }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163632.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • js 数组 复制「建议收藏」

    js 数组 复制「建议收藏」在js中,数组赋值是属于引用赋值,如:vara=[1,2,3]varb=a;若b修改,a也会做相应的改变,若要在b改变的时候保持a不变则需要深度复制b=JSON.parse(JSON.stringify(a))这样的话b在改变的话a就不会改变沈阳北站候车室南入口沈阳北站候车室南入口…

    2022年7月13日
    14
  • matlab 矩阵除法

    matlab 矩阵除法Matlab提供了两种除法运算:左除(/)和右除(/)。一般情况下,x=a/b是方程a*x=b的解,而x=b/a是方程x*a=b的解。例:a=[1  2  3;4  2  6;7  4  9]b=[4;1;2];x=a/b则显示:x=      -1.5000        2.0000        0.5000如果a为非奇异矩阵,则a/b和b/a可通过a的逆矩阵与

    2022年6月29日
    83
  • TPshop学习(8)微信支付

    TPshop学习(8)微信支付

    2021年10月14日
    41
  • flake8规范_flake8

    flake8规范_flake8一.概述flake8(代码规范利器)是下面三个工具的封装:1)PyFlakes2)Pep83)NedBatchelder’sMcCabescript二.安装pipinstallflake8三.使用(rd)➜webgit:(develop)✗flake8views.py#检查一个文件views.py:1:1:E265blockcomments…

    2022年9月13日
    2
  • idea最新激活码(破解版激活)「建议收藏」

    idea最新激活码(破解版激活),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    57
  • 数据类型

    一:什么是数据在接触数据之前我们已经知道了变量,那么什么是变量呢又该如何声明变量呢声明变量name="王妃"在这个变量中共包含三个部分:在这个示例中变量的值“王妃”

    2022年3月29日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号