File 监控球拍中的文件更改(如tail-f)

File 监控球拍中的文件更改(如tail-f),file,racket,change-tracking,File,Racket,Change Tracking,我想在Racket中实现一个“tail-f”样的行为。也就是说,我想从一个文件中读取,当我到达末尾时,能够生成类似“阻塞”(读取行文件),当其他进程向文件追加一行时将返回。 我尝试与(读取行evt文件)同步,但如果我在文件末尾,而不是在其他数据可用之前阻塞,它会立即返回。 有办法吗?我认为您没有办法避免轮询该文件 请注意,所有的球拍的输入函数都考虑 EOF当输入流到达输入流结束时应该返回的值,所以所有事件都在返回结束时立即返回。至少我没有看到任何看起来像“等待某个输入准备就绪,而不是eof”的东

我想在Racket中实现一个“tail-f”样的行为。也就是说,我想从一个文件中读取,当我到达末尾时,能够生成类似“阻塞”
(读取行文件)
,当其他进程向文件追加一行时将返回。 我尝试与
(读取行evt文件)
同步,但如果我在文件末尾,而不是在其他数据可用之前阻塞,它会立即返回。
有办法吗?

我认为您没有办法避免轮询该文件

<>请注意,所有的球拍的输入函数都考虑<代码> EOF当输入流到达输入流结束时应该返回的值,所以所有事件都在返回结束时立即返回。至少我没有看到任何看起来像“等待某个输入准备就绪,而不是
eof
”的东西

在任何情况下,如果您知道某个系统调用触发回调而不是轮询文件,那么您也有ffi。AFAICT的
tail
的linux源代码使用inotify,因此您可能能够使用一个旧的包来接口来自racket的调用。(但它很旧,可能需要一些更新工作。)