當我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