windows中用什么替代fcntl函数啊

gongzh8426 2009-11-28 12:33:37
有个linux程序需要转到wince下面,其中的fcntl函数不知道用什么函数来替换掉。
重要功能就是声明一个管道,将其fd[0]读端设为无阻塞的,这个功能在我windows中怎么实现呀
就是下面这段在windows中如何替换:

int ret;
int filedes[2];

ret = pipe(filedes);
if (ret < 0) {
LOGE("Error in pipe() errno:%d", errno);
return NULL;
}

s_fdRead = filedes[0];
s_fdWrite = filedes[1];

fcntl(s_fdpRead, F_SETFL, O_NONBLOCK);

请赐教。
...全文
2419 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongzh8426 2009-12-01
  • 打赏
  • 举报
回复
多谢
CodeProject-Jerry 2009-11-29
  • 打赏
  • 举报
回复
上面说错了, 是非阻塞模式, 就是没读完就可以马上返回
CodeProject-Jerry 2009-11-29
  • 打赏
  • 举报
回复

fcntl(s_fdpRead, F_SETFL, O_NONBLOCK);


这句的意思是说 将管道设置成异步模式。

在Windows下如果要使用异步管道, 需要使用 重叠IO, 没有这种直接的设置方式
cattycat 2009-11-29
  • 打赏
  • 举报
回复
晕,我以为是socket呢,是管道啊,up楼上。
MoXiaoRab 2009-11-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 togoblime 的回复:]
SetNamedPipeHandleState传入参数PIPE_WAIT/PIPE_NOWAIT
[/Quote]
没错。CreatePipe可以创建一个管道
togoblime 2009-11-29
  • 打赏
  • 举报
回复
SetNamedPipeHandleState传入参数PIPE_WAIT/PIPE_NOWAIT
cattycat 2009-11-28
  • 打赏
  • 举报
回复
setsockopt函数可以用,可以查一下msdn这个函数的具体参数可选项。
mengde007 2009-11-28
  • 打赏
  • 举报
回复
去看看MSDN;貌似CAsyncSocket异步连接

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧