我浏览了access
命令的Linux手册页,但不确定该命令的应用。
有人可以解释一下。
可以像这样使用:
access -f filename;
如果我想检查文件是否存在? 但是我收到了一个错误:
The transaction failed: no-cache,
同样的事情发生在:
access -w filename;
如果我想检查文件是否可由当前用户写入。
这也可以轻松地使用test
命令轻松完成。那么这两个命令之间的确切区别是什么。请详细说明。
提前谢谢。
答案 0 :(得分:3)
这不是Linux命令。它是C
函数,可以通过unistd.h
库加载。
您可以在C
程序中使用它,如下所示:
#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
。 0
和许多其他语言的C
为false,但在这种情况下,它意味着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
。