OS X LionでXcodeを使用してCコマンドラインアプリケーションをデバッグしようとしています。アプリケーションは、標準入力を介して多くの入力データを必要とします。シェルでは、テキストファイルをこのアプリケーションにパイプするだけです。Xcodeでアプリケーションを実行するパイプ
Xcodeでどうすればいいですか?
OS X LionでXcodeを使用してCコマンドラインアプリケーションをデバッグしようとしています。アプリケーションは、標準入力を介して多くの入力データを必要とします。シェルでは、テキストファイルをこのアプリケーションにパイプするだけです。Xcodeでアプリケーションを実行するパイプ
Xcodeでどうすればいいですか?
....
私はX-コードにパイプへの道を見つけ出すことができなかったので、私は私のスクリプトの先頭に次のコードを追加していますテストファイルと呼ばれるテストファイルからパイプされます。
// For debugging
if (argc == 2 && strcmp(argv[1], "debug") == 0) {
printf("== [RUNNING IN DEBUG MODE]==\n\n");
char test_file_path[] = "/Users/bonobos/are/amazing/test.txt";
freopen(test_file_path, "r", stdin);
}
Xcodeのは、コンパイル時にあなたは絶対パスを使用した方がいいでしょうテキストリソースをパッケージ化する気にしたくない場合は、それはので、いくつかの奇妙なランダムなフォルダに移動しているので、私は完全なファイルパスが必要に注意してください。
freopenは、ファイルの内容をstdinに送信します。
私はif文を持っているので、debugの引数を持つようにxcodeを設定しました。これはコメントでそれを行い、批判のためにコンパイルするときはコメントを忘れてしまいます。
に行き、Xcodeの引数を設定するには:スキーム>編集スキーム
が次に実行方式で引数 'デバッグ' を設定>
製品:
残念ながら、あなたはできません。
NSFileHandle *input;
if (AmIBeingDebugged())
input = [NSFileHandle fileHandleForReadingAtPath:@"/Users/me/debug.input"];
else
input = [NSFileHandle fileHandleWithStandardInput];
AmIBeingDebuggedのソースはhereです:私はこのような目的を、デバッグのためのファイルからの読み込みに私のプログラムを修正するために抱えています。
デバッグのためにXcodeプロジェクトの実行可能ファイルにデータをパイプすることができます。
私の答えは、同様のStackoverflow質問hereを参照してください。 (便宜上コピー)
:Xcodeの4.5.1で
:
echo mydata | ./MyApp.app/Contents/MacOs/MyApp
スイッチ:
打ち上げあなたが標準入力に好きでアプリの配管(それは/ユーザ/ユーザ/ライブラリ/開発/ Xcodeの/ DerivedData/MyApp- dmzfrqdevydjuqbexdivolfeujsj/Build/Products/Debug/
のようなものになります) Xcodeに戻って、デバッガはアプリケーションの起動を検出してそれにアタッチします。ただ、@ネストールの答えをよりよく明確にするため
私の問題はこれを実行するたびにターミナルセッションを開く必要があることです。 mydataの内容を毎回コンソールエリアにコピーアンドペーストするだけでいいです(これは私がこの記事を探しに行くときに避けようとしていたものです)。 – anthropomorphic
の可能な複製[ファイルからstdinをXcode 4の実行可能ファイルにパイプする方法は?](http://stackoverflow.com/questions/7629886/how-can-i-pipe-stdin-from-a-file-実行可能なxcode-4) – David