认识 fcntl 接口函数(文件非阻塞设置)

本文介绍了fcntl函数的作用及使用方法,重点讲解如何通过fcntl函数将文件描述符设置为非阻塞模式,包括具体实现步骤与代码示例。

目录

一、fcntl函数的作用

二、fcntl 函数的声明

1、参数解析 

2、返回值解析

三、使用fcntl 将文件描述符设置为非阻塞

1、设置非阻塞模式实现

2、代码测试


一、fcntl函数的作用

read函数是典型的阻塞模型,当缓冲区里的数据不就绪的时候,会一直阻塞等待。这是正常的,因为文件描述符默认是阻塞IO,而我们可以通过 fcntl 接口函数将文件描述符设置为非阻塞IO。

设置成非阻塞IO以后,read函数会一直检测数据是否就绪,如果就绪就读取,并返回读取到的字符数;如果不就绪,就返回一个错误码。

二、fcntl 函数的声明

fcntl 函数的作用是操作一个文件的文件描述符,而设置成非阻塞IO只是 fcntl 函数的功能之一。

1、参数解析 

第一个参数fd,指明你要操作哪个文件的文件描述符。

第二个参数cmd,也就是你要对该文件描述符进行何种操作。cmd的取值不同,后面追加的参数也不同。

<
cmd的取值 命令解析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值