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()
???
Спасибо за вашу доброту!!!