Например, у меня есть Isilon NAS в 10.20.30.11, и я смонтировал его следующим образом:
mount 10.20.30.11:/folder /content
Я мог бы использовать команду ls
для поиска файла в папке или /content
.Его мод 777.
bash-3.00# ls -l /content/a/b/1.txt
total 344131
rwxrwxrwx 1 1005 65533 140750 Feb 28 00:58 1.txt
Но я не могу получить к нему доступ с помощью функции access ().
#include <iostream>
#include <string>
#include <unistd.h>
#include <cerrno>
using namespace std;
#include <stdio.h>
int main( int argc, const char* argv[] )
{
int returnVal = 0;
returnVal = access(argv[1], R_OK);
cout << returnVal << endl;
cout << errno << endl;
return 0;
}
В результате будут возвращены -1 и 2, что означает «Нет такихфайл или каталог '.
./a.out /content/a/b/1.txt
-1
2
#define ENOENT 2 /* No such file or directory */
Я думаю, это не проблема с правами доступа, потому что мод - 777, а результат - "Нет такого файла или каталога".