【Linux网络】五种IO模型与非阻塞IO

五种IO模型与非阻塞IO


文章目录


五种IO模型










高级IO重要概念



实现函数SetNoBlock


轮询方式获取标准输入

代码如下(示例):

c 复制代码
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
void SetNoBlock(int fd) {
	int fl = fcntl(fd, F_GETFL);
	if (fl < 0) {
		perror("fcntl");
		return;
	}
	fcntl(fd, F_SETFL, fl | O_NONBLOCK);
}
int main() {
	SetNoBlock(0);
	while (1) {
		char buf[1024] = { 0 };
		ssize_t read_size = read(0, buf, sizeof(buf) - 1);
		if (read_size < 0) {
			perror("read");
			sleep(1);
			continue;
		}
		printf("input:%s\n", buf);
	}
	return 0;
}

相关推荐
ltl2 小时前
存储性能建模:IOPS、吞吐与延迟
linux
波波0072 小时前
C# 15 重磅新特性: 带标签 break 与 continue:重新定义嵌套循环控制流
服务器·前端·c#
刘某的Cloud3 小时前
ceph osd 导入导出 rbd volume 卷
linux·运维·ceph·volume
記億揺晃着的那天3 小时前
NAS 内网域名访问为什么需要浏览器授权
网络·nginx·js·nas
chunmiao30324 小时前
DeepSeek V4-Pro 正式版上线,API 8月17日起分时调价
网络·安全
隔窗听雨眠4 小时前
GBase 8s并发控制深度解析:封锁机制、隔离级别与死锁处理全攻略
服务器·数据库·oracle
酸菜。5 小时前
dw_axi_dmac总结
linux
神奇霸王龙5 小时前
Agent 准入门控屠夫:5 旗舰 4 维度评估
linux·运维·数据库·ai·ai作画·agent·ai编程
鲸采云SRM采购管理系统5 小时前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
迪康Defender6 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构