這不是Linux命令。這是C
函數,可以通過unistd.h
庫加載。
#include <unistd.h>
#include <stdio.h>
int main() {
int writeable;
writeable = access("/path/to/file", W_OK);
if (writeable == -1)
printf("Not writeable!");
else
printf("Writeable!";
return 0;
}
注意,它返回0
上的成功:
您可以在一個C
程序按如下方式使用它。 0
對於C
和許多其他語言都是錯誤的,但在這種情況下,這意味着true
。
事實上,你可以看到man access
並不意味着它是一個Linux命令,因爲任何標準的Linux發行版都爲每個C庫和函數提供手冊頁。您也可以看到man malloc
。您可以通過查看標題來確定它是Linux命令還是C庫手冊頁。例如man access
:
ACCESS(2) Linux Programmer's Manual ACCESS(2)
NAME
access - check real user's permissions for a file
SYNOPSIS
#include <unistd.h>
int access(const char *pathname, int mode);
正如你可以看到,第一行指出Linux Programmer's Manual
。
請發佈以下命令的輸出:1)'which access'; 2)'rpm -q --whatprovides $(which access)';順便說一句,如果你看到它類似[這一個](http://linux.die.net/man/2/access)的人,這是AC/C++功能,而不是一個shell命令... –
@Oded: '哪個access'不能提供'access'的路徑。但我的問題是很多linux在線書籍都將'access'識別爲linux命令。另外它可能是一個c/C++函數,但我認爲它在linux中也有一些應用程序,因爲許多其他的linux命令也只是對某些c/C++函數的系統調用。 –