简单的C++写入文件在Mac OS X App中不起作用 - 为什么?(为什么是我?)

JnB*_*ymn 1 c++ macos fileoutputstream

代码很简单:

#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();
}
Run Code Online (Sandbox Code Playgroud)

如果我从命令行运行它,那么我在同一目录中获取预期的文件.如果一个包在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
Run Code Online (Sandbox Code Playgroud)

知道为什么我看不到我想看的文件吗?

chr*_*ris 5

而不是"trash.txt",尝试使用完整路径或更改当前工作目录.