たとえば、10.20.30.11 に Isilon NAS があり、次のようにマウントしました。
mount 10.20.30.11:/folder /content
コマンドを使用ls
して、フォルダーまたは/content
. modは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 */
modは777で、結果は「そのようなファイルまたはディレクトリはありません」であるため、パーミッションの問題ではないと思います。