cstdio fopen и fclose неправильно работают на osx

Я использую tinyxml через openframeworks, который использует cstdio для доступа к файлам. Я вижу, что пример программы вполне счастливо создает и записывает файлы, но не удаляет, поэтому мой план состоит в том, чтобы реализовать удаление, но после попытки запустить этот код в моем собственном проекте он, похоже, не создает файл или не уведомляет меня о ошибка.

Этот код работает, как и ожидалось, в Windows, но не в mac osx 10.8.5, файл не создается.

#include <cstdio>

int main(int argc, const char * argv[])
{
    bool bClosed = false;
    bool bWritten = false;
    FILE* testFile;
    testFile = fopen(".\\test.xml", "w");
    if(testFile)
    {
       bWritten = fputs("test writing.", testFile);
       bClosed = !fclose(testFile);
    }
    return 0;
}

редактировать: теперь я знаю, что файл существует, поскольку я могу прочитать его, я просто не могу просмотреть его в поисковике, у меня показаны скрытые файлы, он не нашел своего пути в содержимом пакета приложения.


person cool mr croc    schedule 18.10.2014    source источник
comment
что ".\\test.xml" должно быть в mac os x? файловая система этого не поймет   -  person UnholySheep    schedule 18.10.2014
comment
fopen и fclose вероятно, работают правильно.   -  person 5gon12eder    schedule 18.10.2014


Ответы (1)


В Unix-подобной системе (например, Mac OS X и Linux) путь Windows как

".\\test.xml"

скорее должно быть

"./test.xml"

В любом случае, самым простым решением для этого случая может быть просто

"test.xml"
person Marco A.    schedule 18.10.2014
comment
Я абсолютно согласен. Я добавлю это. - person Marco A.; 18.10.2014
comment
сначала я попробовал test.xml и, похоже, не работал. Теперь я нашел файл, он отображается в содержимом пакета/MacOS. - person cool mr croc; 18.10.2014