Поскольку вопрос явно касается C / C ++, а НЕ Obj-C, я добавляю этот ответ, который я видел здесь и может кому-то помочь:
char buffer[256];
//HOME is the home directory of your application
//points to the root of your sandbox
strcpy(buffer,getenv("HOME"));
//concatenating the path string returned from HOME
strcat(buffer,"/Documents/myfile.txt");
//Creates an empty file for writing
FILE *f = fopen(buffer,"w");
//Writing something
fprintf(f, "%s %s %d", "Hello", "World", 2016);
//Closing the file
fclose(f);
Используя этот код C:
buffer = "/private/var/mobile/Containers/Data/Application/6DA355FB-CA4B-4627-A23C-B1B36980947A/Documents/myfile.txt"
В то время как версия Obj-C:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
возвращает
documentsDirectory = /var/mobile/Containers/Data/Application/6DA355FB-CA4B-4627-A23C-B1B36980947A/Documents
FYI, если вы заметили о "личное "небольшая разница, я написал в оба места, и они оказались одинаковыми.