当我man -a close
,第一页是POSIX手册页,然后我有一个close(2)
,(2表示系统api或内核func)。这意味着至少有两个版本的close()
。在我的linux中,从posix库或内核中调用close()的哪个版本?
例如,这段代码是这样的:
int fd = open("xxx");
........
close(fd); -----here, which version is called,
is that one from the POSIX lib, or the raw system API?
PS:因此,我的linux系统,包括大多数系统API调用POSIX包装,如何辨别我的代码是否被调用POSIX lib或原来的系统API ?
据我所知,有几种情况我们需要通过某种方式显式声明我们是使用POSIX还是SYSTEMV风格(使用信号量或线程等等),在这种情况下,它是否意味着linux保留一些函数的两个实现?一个COM从POSIX,但其他人适合一些旧式? – basketballnewbie