我目前正在C中实现Scheme R5RS,并且我很难尝试实现(char-ready?)函数.
我有下面引用的功能的规格.该功能保证不会阻止.当没有输入就绪时,fgetc()之类的标准C函数在调用时都会阻塞输入.
有没有人知道是否有办法以一种简单的方式实现这一点,而不会产生专用的IO线程?
编辑:我的输入流类型是FILE*,可以是stdin或用fopen()打开的文件.
(char-ready?)程序
(char-ready?port)程序
如果字符在输入端口上就绪,则返回#t,否则返回#f.如果char-ready返回#t,则保证给定端口上的下一个read-char操作不会挂起.如果端口位于文件末尾,那么char-ready?返回#t.端口可以省略,在这种情况下,它默认为current-input-port返回的值.
理由:
炭火准备好了吗?存在使程序可以从交互式端口接受字符而不会卡住等待输入.与此类端口关联的任何输入编辑器必须确保其字符的存在已由char-ready声明?不能擦掉.准备好了吗?要在文件末尾返回#f,文件末尾的端口与没有就绪字符的交互式端口无法区分.
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |