有没有库函数或者是系统调用用来改变stdin等所关联的文件描述符?
有没有库函数或者是系统调用用来改变stdin等所关联的文件描述符啊?
fileno(stdin)的结果总是0, 能改变这个结果吗?比如让fileno(stdin)的结果为5什么的?
谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
有没有库函数或者是系统调用用来改变stdin等所关联的文件描述符啊?
fileno(stdin)的结果总是0, 能改变这个结果吗?比如让fileno(stdin)的结果为5什么的?
谢谢!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
close(0);
open("abc.txt",RD_ONLY,0777);
这样的话stdin就是abc.txt了。
但是fileno的结果是0啊,并不能改变fileno的结果啊!
dup2()试一试
dup2(old, new);
close(old);
同样的不行啊
复制代码我这样试了一下,发现可以改变stdin对应的文件描述符啊。。
回复 2# liuiang
你这样仅仅是将问间描述符0赋给了这个文件,stdin也对应指向这个文件,但是stdin和文件描述符0还是相关联的啊,它俩对应同一个文件而已。。。
dup2()真不行吗
dup2真的不行!好像不可以对stdin直接复制吧!它是一个常量啊!