为什么在fcntl.h中声明open,而在unistd.h中声明close?

Dou*_*son 12 unix posix

在POSIX中,为什么在fcntl.h中声明了开放系统调用,而在unistd.h中声明了close系统调用?我认为这是一件历史性的神器,但这对对我来说特别奇怪,因为你经常需要在打开后关闭.

use*_*445 6

正如前面所指出的,套接字和管道也会被传递以关闭。但最初的原因可能是 open 需要像 O_RDONLY 这样在 fcntl.h 中定义的标志,所以你不妨将原型放在该文件中。