2011-03-09 49 views
1

我有以下代碼:FSFindFolder發現奇怪的目錄

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); 

所以經過代碼執行我希望有「/用戶/ MYNAME /庫/ Application Support」,但我有「/私營/無功/根/庫/應用程序支持「。 有人知道我遇到了什麼問題嗎?

回答

3

/private/var/root是root用戶的主目錄。此代碼是否在具有setuid或提升特權的進程中運行?