Простая C ++ запись в файл не работает в Mac OS X App - почему? (а почему я?) - PullRequest
1 голос
/ 16 ноября 2010

Код достаточно прост:

#include <iostream>
#include <fstream>
#include <string>

int main(int argc, char* argv[] )
{
    std::ofstream theStream;
    theStream.open("trash.txt");
    theStream << "some words" << std::endl;
    theStream.close();
}

Если я запускаю его из командной строки, я получаю ожидаемый файл в том же каталоге. Если упаковать содержимое исполняемого файла в MacOS .app, то нигде ничего не записывается. (Или, может быть, это просто быстро стерто?)

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

#!/bin/bash

appName=MyApp
if [ $1 ] 
then 
    appName=$1
else 
    echo "usage: convertToApp executableFile"
    exit
fi

if [ -e "$appName" ] 
then
    mkdir $appName.app
    mkdir $appName.app/Contents
    mkdir $appName.app/Contents/MacOS
    mkdir $appName.app/Contents/Resources
    cp $appName $appName.app/Contents/MacOS/$appName
    echo -n 'APPL????' > $appName.app/Contents/PkgInfo
else
    echo "specified file does not exist"
fi

Есть идеи, почему я не вижу файл, который хочу увидеть?

1 Ответ

5 голосов
/ 16 ноября 2010

Вместо «trash.txt» попробуйте использовать полный путь или изменить текущий рабочий каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...