windows下标准输入的句柄是多少?

swat_01 2011-09-14 05:11:35
#include <io.h>
/*...*/
while( (n=read(0,recv_buf,BUFSIZE)) >0 )
/*...*/


调试的时候发现n的值永远是-1,是句柄出问题了吗?
...全文
227 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyjkchen 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 swat_01 的回复:]

iob_func不是只能传file指针么
read只接受int
[/Quote]
看了msdn,posix兼容曾层确实是0,可能是其他的问题
http://msdn.microsoft.com/en-us/library/40bbyw78.aspx
jackyjkchen 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 swat_01 的回复:]

要做移植的话io.h方便很多啊
[/Quote]

单纯移植性,建议使用stdio里面的C标准IO
swat_01 2011-09-14
  • 打赏
  • 举报
回复
iob_func不是只能传file指针么
read只接受int
jackyjkchen 2011-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 0153 的回复:]

这个Windows下一般不用<io.h>的低层IO函数吧?

我一般用GetStdHandle这个函数来获取,然后用API函数读取。
[/Quote]

其实反了,io.h在windows下才不是底层,是上层,io.h是posix的io,windows的posix兼容完全是用户级的
swat_01 2011-09-14
  • 打赏
  • 举报
回复
要做移植的话io.h方便很多啊
0153 2011-09-14
  • 打赏
  • 举报
回复
这个Windows下一般不用<io.h>的低层IO函数吧?

我一般用GetStdHandle这个函数来获取,然后用API函数读取。
jackyjkchen 2011-09-14
  • 打赏
  • 举报
回复
#define stdin (&__iob_func()[0])

是不是0不好说吧

直接传stdin不就行了

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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