我是靠谱客的博主 留胡子秀发,最近开发中收集的这篇文章主要介绍阻塞IO模型-数据读写,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用的IO模型若是没有设置就是默认是阻塞的
注意运行环境ubuntu16.04

#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>


int main(void)
{
    char buffer[4096] = {''};  //因为使用电脑的缓存区大小是4096
    ssize_t size = 0;



    sleep(5);   //没有设置是不是阻塞的时候默认的是阻塞的形式,
    /* 当程序睡眠5秒钟醒过来的时候还是会等待用户的标准输入的 */

    size = read(STDIN_FILENO, buffer, sizeof(buffer));
    //若是没有标准输入就让程序休眠等待,知道等到标准输入
    if(size < 0)
    {
        perror("read error!");
        exit(1);
    }
    else if(size == 0)
    {
        printf("read finished!n");
    }
    else
    {
        if(write(STDOUT_FILENO, buffer, size) != size)
        {
            perror("write error!");
            exit(1);
        }
    }

    return 0;

}

测试结果:
程序编译好之后运行,程序会等待五秒之后,将输入的结果输出出来,若是不进行输入则会阻塞等待

andrew@andrew-Thurley:~/work/iotec$ bin/noblock
ddddd
ddddd
andrew@andrew-Thurley:~/work/iotec$ 

最后

以上就是留胡子秀发为你收集整理的阻塞IO模型-数据读写的全部内容,希望文章能够帮你解决阻塞IO模型-数据读写所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部