1

我浏览了 Linux 手册页以获取access命令,但不确定该命令的应用。

有人可以解释一下吗。

可以这样使用吗:

access -f filename;

如果我想检查文件是否存在?但我收到一个错误:

The transaction failed: no-cache,

同样的事情发生在:

 access -w filename;

如果我想检查文件是否可由当前用户写入。

这也可以通过test命令轻松完成。那么这两个命令之间的确切区别是什么。请详细说明。提前致谢。

4

1 回答 1

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在成功时返回。And0对于许多其他语言都是错误的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.

于 2012-10-14T12:49:14.670 回答