linux下阻塞的系统调用,Linux下socket设置为非阻塞方式和fcntl系统调用.pdf

本文介绍如何在Linux环境下通过fcntl系统调用将Socket设置为非阻塞模式,并提供了具体的代码实现。此外,还说明了如何将非阻塞模式重新设置为阻塞模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 下 socket 设置为非阻塞方式和 fcntl 系统调用

[ 日期: 2011-04-16] 来源: Linux 社区 作者: Linux

用以下方法将 socket 设置为非阻塞方式

int flags = fcntl(socket, F_GETFL, 0);

fcntl(socket, F_SETFL, flags | O_NONBLOCK);

用以下方法将 socket 设置为非阻塞方式

int flags = fcntl(socket, F_GETFL, 0);

fcntl(socket, F_SETFL, flags | O_NONBLOCK);

将非阻塞的设置回阻塞可以用

int flags = fcntl(socket, F_GETFL, 0);

fcntl(socket, F_SETFL, flags & ~O_NONBLOCK);

功能描述:根据文件描述词来操作文件的特性。

用法:

int fcntl(int fd, int cmd);

int fcntl(int fd, int cmd, long arg);

int fcntl(int fd, int cmd, struct flock *lock);

参数:

fd :文件描述词。

cmd :操作命令。

arg :供命令使用的参数。

lock :同上。

有以下操作命令可供使用

一 . F_DUPFD :复制文件描述词 。

二 . FD_CLOEXEC :设置 close-on-exec 标志。如果 FD_CLOEXEC位是 0,执行 execve 的过程中,文件保持打开。反之则关闭。

三 . F_GETFD :读取文件描述词标志。

四. F_SETFD :设置文件描述词标志。

五 . F_GETFL :读取文件状态标志。

Linux 下 socket 设置为非阻塞方式和 fcntl 系统调用

[ 日期: 2011-04-16] 来源: Linux 社区 作者: Linux

用以下方法将 socket 设置为非阻塞方式

int flags = fcntl(socket, F_GETFL, 0);

fcntl(socket, F_SETFL, flags | O_NONBLOCK);

用以下方法将 socket 设置为非阻塞方式

int flags = fcntl(socket, F_GETFL, 0);

fcntl(socket, F_SETFL, flags | O_NONBLOCK);

将非阻塞的设置回阻塞可以用

int flags = fcntl(socket, F_GETFL, 0);

fcntl(socket, F_SETFL, flags & ~O_NONBLOCK);

功能描述:根据文件描述词来操作文件的特性。

用法:

int fcntl(int fd, int cmd);

int fcntl(int fd, int cmd, long arg);

int fcntl(int fd, int cmd, struct flock *lock);

参数:

fd :文件描述词。

cmd :操作命令。

arg :供命令使用的参数。

lock :同上。

有以下操作命令可供使用

一 . F_DUPFD :复制文件描述词 。

二 . FD_CLOEXEC :设置 close-on-exec 标志。如果 FD_CLOEXEC位是 0,执行 execve 的过程中,文件保持打开。反之则关闭。

三 . F_GETFD :读取文件描述词标志。

四. F_SETFD :设置文件描述词标志。

五 . F_GETFL :读取文件状态标志。

Linux 下 socket 设置为非阻塞方式和 fcntl 系统调用

[ 日期: 2011-04-16] 来源:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值