社区
C语言
帖子详情
fcntl问题
gccli
2008-08-07 04:34:19
我用socket写一个客户端程序,用fcntl设置了非阻塞,但是在read时却阻塞了。
服务器并没有向客户端发数据,我想让他在read处不阻塞,怎么弄? 还有,最重要的,为什么fcntl不起作用????
fd = socket(AF_INET, SOCK_STREAM, 0);
fcntl(fd, F_SETFL, O_NONBLOCK);
...
len = read(fd, buf, 1024);//
...
...全文
326
8
打赏
收藏
fcntl问题
我用socket写一个客户端程序,用fcntl设置了非阻塞,但是在read时却阻塞了。 服务器并没有向客户端发数据,我想让他在read处不阻塞,怎么弄? 还有,最重要的,为什么fcntl不起作用???? fd = socket(AF_INET, SOCK_STREAM, 0); fcntl(fd, F_SETFL, O_NONBLOCK); ... len = read(fd, buf, 1024);// ...
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zjl878586
2009-08-09
打赏
举报
回复
怎么回事?我也遇到这样的问题,有谁知道啊
快乐田伯光
2008-08-07
打赏
举报
回复
用read一样的可以做到非阻塞读的。
这个后面应该还有一个参数的。
fdflags = fcntl(fd, F_GETFL, 0);
gccli
2008-08-07
打赏
举报
回复
我好像找到了答案
http://topic.csdn.net/t/20030726/00/2073466.html
为什么不用recv读socket???
recv(flag[i],buf,sizeof(buf), MSG_DONTWAIT)非阻塞读
去试试
快乐田伯光
2008-08-07
打赏
举报
回复
最好是变量名不要混用,
int fdflags
int iRtn;
fdflags = fcntl(fd, F_GETFL);
fdflags |= O_NONBLOCK;
iRtn = fcntl(fd, F_SETFL, fdflags);
快乐田伯光
2008-08-07
打赏
举报
回复
int flags = fcntl(fd, F_GETFL);
flags ¦= O_NONBLOCK;
flags = fcntl(fd, F_SETFL, flags);
gccli
2008-08-07
打赏
举报
回复
谢谢楼上,又见到你了
是这样,没有设置其他任何属性,创建套接字后,调用fcntl
int flags = fcntl(fd, F_GETFL);//这时得到flags = 0
然后,flags |= O_NONBLOCK;
flags = fcntl(fd, F_SETFL, O_NONBLOCK); //这里得到flags也是0
奇怪了,怎么不起作用?
快乐田伯光
2008-08-07
打赏
举报
回复
fcntl()调用成功了没有?或是别的地方又改了属性了吧
快乐田伯光
2008-08-07
打赏
举报
回复
不可能吧
【python报错
问题
解决】【windows11】ModuleNotFoundError: No module named “
fcn
tl
“
fcn
tl
为python标准库中的一个模块,属于Unix Specific,负责操作文件锁(https://docs.python.org/3/library/
fcn
tl
.html)。很显然,这个模块是为linux系统准备,windows python中是不自带的,所以当我们在windows中运行使用了
fcn
tl
模块的py时,就会报错,模块无法找到。“D:\software\miniconda\envs\maxkb” 为我虚拟环境的安装路径,将
fcn
tl
.py放入其中Lib目录下即可。
解决
fcn
tl
偶发的加锁失败
问题
在使用
fcn
tl
加锁时,必须考虑获取句柄的时间顺序是否会产生非预期的结果,虽然
fcn
tl
能够建立后续操作的保护区间,但是获取句柄的时间顺序是无法保证的,因此使用
fcn
tl
加锁的句柄一定不能是操作目标,而应该引入额外的文件。
fcn
tl
锁在 Go 中通过 execve 之后不生效的
问题
fcn
tl
锁在 Go 中通过 execve 之后不生效的
问题
背景 man 2
fcn
tl
Record locks are not inherited by a child created via fork(2), but are preserved across an execve(2). 看到
fcn
tl
的介绍,我们想当然地认...
Windows环境下运行bilive项目时
fcn
tl
模块
问题
的解决方案
在Windows操作系统上运行bilive项目的upload功能时,用户可能会遇到一个常见的Python模块导入错误:`ModuleNotFoundError: No module named '
fcn
tl
'`。这个
问题
源于
fcn
tl
模块在Windows平台上的不可用性。 ## 技术分析
fcn
tl
模块是Unix/Linux系统特有的模块,主要用于文件描述符的控制和操作。它提供了对文件锁定、非
fcn
tl
.h和unistd.h区别及其
fcn
tl
.h包含的宏的含义等
问题
概述
fcn
tl
.h定义了很多宏和open,
fcn
tl
函数原型unistd.h定义了更多的函数原型close(关闭文件)表头文件#include<unistd.h>定义函数int close(int fd);函数说明当使用完文件后若已不再需要则可使用close()关闭该文件;二:close()会让数据写回磁盘,并释放该文件所占用的资源。参数fd为先前由open()或creat()所返回的文件...
C语言
70,040
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章