FSFindFolder находит странный каталог - PullRequest
1 голос
/ 09 марта 2011

У меня есть следующий код:

FSRef FileRef;
OSStatus Error = ::FSFindFolder(kUserDomain, kApplicationSupportFolderType, kCreateFolder, &FileRef);
if (Error != noErr)
{
    //error
}

CFURLRef UrlRef = ::CFURLCreateFromFSRef(kCFAllocatorDefault, &FileRef);
if (!UrlRef)
{
    //error
}
CFStringRef PathRef = ::CFURLCopyFileSystemPath(UrlRef, kCFURLPOSIXPathStyle);
/Qt class for string store
QString strResult;
if (PathRef)
{
    CFIndex Size = ::CFStringGetMaximumSizeForEncoding(::CFStringGetLength(PathRef), kCFStringEncodingUTF8);
    //Qt smart pointer for arrays
    QScopedArrayPointer<char> spBuffer(new char[Size + 1]);
    if (::CFStringGetCString(PathRef, spBuffer.data(), Size, kCFStringEncodingUTF8))
    {
        strResult = QString::fromUtf8(spBuffer.data());
    }
    else
    {
        //error
    }
    ::CFRelease(PathRef);
}
else
{
    //error
}
::CFRelease(UrlRef);

Поэтому после выполнения кода я ожидаю, что у меня будет "/ User / myname / Library / Application Support", но у меня есть "/ private / var / root / Library / /Поддержка приложений "вместо.Кто-нибудь знает в чем проблема, с которой я столкнулся?

1 Ответ

3 голосов
/ 09 марта 2011

/private/var/root - домашний каталог для пользователя root.Этот код выполняется в процессе с setuid или повышенными привилегиями?

...