这篇文章:
Empty or "flush" a file descriptor without read()?
,表示可以在你不想读取的fd上执行lseek()
,从而避免不必要的复制,但这不适用于我使用timerfd_create()
创建的fds。为什么会如此,是否存在解决方法(使用read()
除外)。
我尝试像这样lseek()
:
lseek(fd, 0, SEEK_END);
strerror()
返回Illegal seek
。同样,read(fd, buffer, 8)
有效。
答案 0 :(得分:1)
timer_fd
不可寻求。不是每个fd
都是。使用read
读取相关字节。
请注意,与POSIX
标记相反,这些调用是特定于Linux的。从手册页:
CONFORMING TO
These system calls are Linux-specific.