iOS opendir("/Library") Операция не разрешена

Разрешение каталогов следующее:

/Applications d rwxrwxr-x root admin
/Library      d rwxrwxr-x root admin
/private      d rwxr-xr-x root wheel

opendir("/Applications") это работает хорошо opendir("/Library") операция не разрешена opendir("/private") операция не разрешена

Среда выполнения: устройства iOS 7.7/9.2 + xcode 7.2 и использование сообщений отладки print() печатать в консоли, но это хорошо работает при использовании симуляторов iOS вместо устройств iOS

я пытаюсь получить пользователя и группу потока, используя getpwuid(getuid()) а также getgrgid(getgid()) рассказал результат мобильного и мобильного

void RootPremission::getDirFiles (const char* path, int deep) { // outside call this function with parameter "/" and 0
    struct stat statBuf;
    if (lstat(path, &statBuf) == 0) {
        printf("%s\n", setFileInfo(&statBuf));

        if (S_ISDIR(statBuf.st_mode)) { // go deep dir
            DIR *dp = NULL;
            if ((dp = opendir(path)) != NULL) {
                struct dirent *dirp = NULL;
                while ((dirp = readdir(dp)) != NULL) {
                    if (strcmp(dirp->d_name, ".") == 0 || strcmp(dirp->d_name, "..") == 0 || *dirp->d_name == '.') {
                        continue;   // ignore . and .. and hiden file
                    }

                    for (int i=0; i!=deep; ++i) {
                        printf(" ");
                    }
                    printf("|- %s ", dirp->d_name);

                    char *fullPath = strcatPath(path, dirp->d_name);
                    getDirFiles (fullPath, deep+1);
                    free(fullPath);
                    fullPath = NULL;
                }
                closedir(dp);
            }
            else {
                printf("#");
                perror(path);
            }
        }
        else {  // try to open file
            if (S_ISREG(statBuf.st_mode)) {
                FILE *file = fopen(path, "r");
                if (file != NULL) {
                    if (fclose(file) == EOF) {
                        perror(path);
                    }
                }
                else {
                    printf("+");
                    perror(path);
                }
            }
        }
    }
    else {
        printf("$");
        perror(path);
    }
}

Проблема заключается в следующем: 1. при использовании устройства iOS, того же разрешения, того же пользователя и той же группы, почему "/Applications" может работать хорошо, а "/Library" работает с недопустимой операцией??? 2. при использовании симуляторов iOS вместо устройств iOS эти три каталога могут открываться с помощью opendir() ???

Спасибо за вашу доброту!!!

0 ответов

Другие вопросы по тегам