这不是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++函数的系统调用。 –