2012-02-05 97 views

回答

2

kflushd AFAIK处理写出在存储器挂起的I/O到它们相应的设备。如果你想刷新未决的I/O,你总是可以调用flush,fflush或sync来强制写入I/O设备。

从代码中调用它只需使用我提到的其中一个通话(但我觉得可能是一个更我忘了)。

1

内核进程(如kflushd)由内核自行启动(它们不是由fork -ing启动的init进程的后代),仅存在于内核需求。用户应用程序可能会无形中需要它们(因为它们需要内核提供的某些功能,而内核通过它自己的内核进程来实现),但不会主动使用它们。

你一定要正确使用fflush(3)库函数(这恰好使相关write(2)系统调用)。

您可能需要使用fsync(2)和相关的系统调用。

关于网络,您可以通过Nagle's algorithm感兴趣。请参阅this answer

相关问题