不读取 eventfd 来清除值是可行的。为了演示这一点,下面的示例创建一个 eventfd 句柄,写入两次并不读取。
#include
#include
#include
int main()
{
uint64_t value1 = 123;
uint64_t value2 = 456;
int fd = eventfd(0, EFD_NONBLOCK);
write(fd, &value1, sizeof(value1));
write(fd, &value2, sizeof(value2));
printf("Eventfd created with value %lu\n", value1+value2);
close(fd);
return 0;
}
输出:
Eventfd created with value 579
可以看到,即使没有读取 eventfd,两次写入的值仍然被累加,并在关闭句柄时被释放。因此,不必担心不读取 eventfd 的问题。
下一篇:不读取javascript文件