【发布时间】:2014-07-15 16:16:39
【问题描述】:
在 UNIX 中:read 系统调用会阻塞进程,直到它完成。
write 系统调用的行为如何?它在磁盘上写入时会阻止进程吗?
对于 write 系统调用,我的意思是 write(fd, bf, nbyte) 过程调用。
【问题讨论】:
标签: unix linux-kernel posix system
在 UNIX 中:read 系统调用会阻塞进程,直到它完成。
write 系统调用的行为如何?它在磁盘上写入时会阻止进程吗?
对于 write 系统调用,我的意思是 write(fd, bf, nbyte) 过程调用。
【问题讨论】:
标签: unix linux-kernel posix system
不,它只会阻塞进程,直到缓冲区的内容被复制到内核空间。这通常时间很短,但在某些情况下它可能会等待一些磁盘操作:
如果你想等到数据真正上板,你需要跟进fsync(2)。
【讨论】: