Я думаю, что код ниже будет работать нормально.
Если не так, пожалуйста, измените ..
char * UnixPathFromFSSpec(FSSpec *sfile)
{
char unixPath[2048];
unixPath[0] = '\0';
FSRef ref;
if(FSpMakeFSRef(sfile, &ref) == noErr )
{
FSRefMakePath(&ref, unixPath, sizeof(unixPath));
}
return unixPath;
}