0

これは MacOS での iPhone 開発に関する質問です。シミュレーターで iPhone アプリを起動するために「waxsim」を使用しています。このような:

/usr/local/bin/waxsim /Users/me/Desktop/app/build/Release-iphonesimulator/app.app

アプリ内で printf() を使用すると、コンソールに出力された printf メッセージが表示されます。

しかし、それらをgrepでファイルまたはフィルターに入れることはできません! 私は通常動作するすべてを試します:

cmd | grep "x"

すべてのメッセージが出力されますが、grep を介したものではありません

cmd > myfile

すべてのメッセージは引き続きコンソールに送られ、ファイルには何も送られません

cmd &> myfile

このコマンドは、コンソールに何も出力しません! しかし、 myfile にはこれしか含まれていません:

Launching '/Users/me/Desktop/app/build/Release-iphonesimulator/app.app' on'Simulator - iOS 6.0'

ただし、printf で出力される実際のメッセージではありません

cmd 2>&1 > myfile

これを使用すると、すべてがコンソールに送られ、ファイルには何も送られません。

ワックスシムはパイプでいくつかのトリックを行うと思いますか?

4

1 に答える 1

1

cmd &> myfile動作するはずです(または同等にcmd > myfile 2>&1、順序が重要です)。

ただし、メッセージがバッファリングされることが問題である可能性があります。これは、stdout が端末でない場合の標準的な動作です。ファイルを見る前にシミュレーターを完全にシャットダウンした場合、メッセージは表示されますか?

もしそうなら、試してみてくださいscript -q /dev/null yourcommand(のOS X構文についてはわかりませんscript.Linuxではscript -c "your command" /dev/null.

于 2013-01-29T07:10:40.753 に答える