• ベストアンサー

環境のちがい??

学校の宿題で、構文木を作るプログラムを作成したのですが、まったく同じプログラムなのに、学校のコンピュータ(solaris)だとちゃんと動くのに、家のパソコン(winXP)だと動かないんです。これってしかたないことっていうかしょうがないことなのでしょうか。 具体的な症状 main.exe a|b のように引数を指定するとコマンドbはありませんとでます。

質問者が選んだベストアンサー

  • ベストアンサー
noname#6581
noname#6581
回答No.2

'|'は特殊な文字なので、シェルが横取りしてしまってプログラムに渡りません。 main.exe "a|b" のようにダブルクォートで囲って実行してみてください。

その他の回答 (1)

  • edomin
  • ベストアンサー率32% (327/1003)
回答No.1

コマンドラインでの引数が「パイプ」に解釈されています。 「main.exe a」の結果を「b」へ送ろうとしているので、 「コマンドbはありません」 のエラーメッセージが出ています。

関連するQ&A

  • main()とint main(void)の違い

    最初main()と習ったのですが、最近学校でmain()ではなくint main(void)を使うように なりました。 どのように違うのでしょうか? main関数のところに引数が入っている意味がわかりません。 (void)ってなんですか? そもそも引数って何ですか? あと、プログラムの最後にreturn(0)って書いてあるんですが、これはどういう意味ですか? 回答よろしくお願いします。

  • coutへの出力内容をプログラム中で取得

    C言語、C++(WinXP)で以下のようなことはできるのでしょうか。 例えば、 //A.cpp void main() { cout << 1 << endl; } というプログラムをA.exeという名前で作ったとします。そして、別のB.exeというプログラムを //B.cpp void main() { system( "A.exe" ); } として実行すると(A.exeとB.exeは同じフォルダにあるとして)、コマンドプロンプトに"1"と出力されますが、B.exe中でA.exeがcoutに出力した内容を取得してなんらかの計算をする、例えば、 //B.cpp void main() { system( "A.exe" ); int x; //xにcoutの内容"1"を取得する x *= 2; } のようなことはできるのでしょうか。また、A.exeの出力先がcoutではなくcerrの場合はどうでしょうか。 coutの場合はリダイレクトを使えば同様のことができるような気もするのですが、実際にやりたいのは、コマンドプロンプトで使う事を前提にして作ったプログラム(A.exeのような)があり、それをVC++6.0で作るダイアログベースのGUIプログラムから呼び出します。ただ、A.exeはエラーがあった場合等にcoutやcerrにメッセージを出力するので、GUIプログラム側でそれを取得してエディットボックスやメッセージボックスに出力したいのです。 このような事ができるのかどうかもわからないのですが、もし方法をご存知でしたらご教授をお願いします。

  • コマンドライン引数について

    コマンドライン引数について opencvのサンプルを試しているのですが、困っています。 xcodeでビルドするとビルドは問題ないのですが、実行できない状態のものがあります。実行できないものは「デバックは正常に終了しました」や「ステータス255で終了しました」と出てしまいます。 前回の質問でコマンドライン引数が問題ではないか?とアドバイス頂き、色々と調べたのですが、main関数がコマンドライン引数をとることは理解出来たところで止まっています…。引数の指定の方法がわからず、Terminalから指定しようとexeファイルを開けて入力しようとしてみるのですが「プロセスは完了しました」と出てしまい、入力することができません… このやり方があっているかわからず、混乱しています。もし、検討違いのことを言っていたらすみません。 誰か引数の指定方法についてご存知であれば、アドバイス頂けないでしょうか? よろしくお願い致します。

  • Cの本を読んでいて・・・

    Cの本(バイブルと呼ばれているもの)を読んでいたのですが、よく理解できなかったので、質問させていただきました。 「コマンド行の引数、Cをサポートする環境においては、コマンド行の引数すなわちパラメータを、実行開始時にプログラムに渡す方法がある。具体的には、実行開始時にmainが呼び出されたときに、二つの引数が渡される。最初の引数は、そのプログラムを呼び出したコマンド行の引数の個数である。二番目は引数を内容とする文字列の配列を指すポインタで、その文字列ひとつが引数ひとつに対応する。」とありました。全体的に分からないのですが、コマンド行とは?mainにプログラムを渡すしくみ?どなたか分かりやすく、教えてください。どうぞよろしくお願いします。

  • 実行結果をコマンドライン引数として渡す方法について

    test1.cはコマンドラインから引数をとり処理するプログラム test2.cは「Hello!」と出力するプログラム。 これらのプログラムをコンパイルして、次のような引数の渡し方をしてHello!と表示したいのですがうまくいきません。 実際の結果 ----------------------------------------- $ ./test1.exe ./test2.exe ($はプロンプト) $ ./test2.exe $ ----------------------------------------- 期待する結果 ----------------------------------------- $ ./test1.exe ./test2.exe $ Hello! $ ----------------------------------------- ここでプログラムの仕様を示しておきます。 プログラム1(test1.c)の中身 -------------------------------------- #include <stdio.h> main(int argc, char *argv[]){ printf("%s\n", argv[1]); } -------------------------------------- プログラム2(test2.c)の中身 -------------------------------------- #include <stdio.h> main(){printf("Hello!\n");} -------------------------------------- よろしくお願いします!

  • コマンドプロンプトを使用してのコマンドライン引数

    winXPのコマンドプロンプトを利用して 参考書「独習C」を使い、C言語の学習をしています。 その本の7.4の項目~main()の引数~で main(int argc,char *avgv[])を利用すると コマンドラインから引数をとることができるとありますが 私の学習環境ではうまくいきません。 具体的には #include <stdio.h> int main(int argc, char *argv[]) { int i; for(i=1; i<argc; i++) printf("%s ", argv[i]); return 0; } というプログラムを実行しても何も表示されません。 どうすればコマンドライン引数を利用できますか?

  • 【VBScript】引数を付けてexeを実行

    以下のプログラムを書こうとしています。 ヒントや参考サイト、参考プログラム等を教えてください。 1.vbsをダブルクリックし実行する。 2.画面が開く。 3.実行するexeを指定する。 4.1個目の引数を指定する。 5.2個目の引数を指定する。 6.○個目の引数を指定する。 7.OKボタンを押す。 8.指定したexeが指定した引数付きで実行される。 尚、引数はファイルの場合や数字の場合があります。 引数の数は2個か3個か4個程度になります。

  • exec()で他ディレクトリのexeプログラムを実行したい

    url2bmpという、指定したURLのスクリーンショットを作成できるコマンドライン対応のソフトを使用しています。これをPHPから実行させたく、exec()関数を使っています。PHPプログラムとexeプログラムは同じ階層にあり、コードは exec("url2bmp.exe 以下、引数"); のようにしており、問題なく動作していました。 その後、url2bmp.exeを1階層下のフォルダに移し、コードも修正したのですが、動かなくなってしまいました。コードは以下の通りで exec("kasou/url2bmp.exe 以下、引数"); ディレクトリ指定は間違っていないはずであり、原因は明らかにurl2bmp.exeがPHPプログラムと同じディレクトリにないことなのですが、これの対処法は存在しないのでしょうか?同じコードをコマンドプロンプトで実行するとうまくいくのに、exec()関数では動かないという点に納得がいきません。

    • ベストアンサー
    • PHP
  • jarを実行する時にjavaコマンドの引数(-Xssや-D)を指定する

    jarを実行する時にjavaコマンドの引数(-Xssや-D)を指定するには? jarを実行する時に、Main-Classをjavaコマンドで普通に実行させた場合と同様に引数(-Xssや-D)を指定するにはどうしたらいいのでしょうか?

    • ベストアンサー
    • Java
  • 引数に本日の日付(yyyy/mm/dd)を指定した

    コマンドファイルがあり、引数に日付を指定できます。 例:abc.exe -day 2017/08/20 上記のようなコマンドファイルをタスクスケジューラーで実行したいのですが どのように指定をすればよいのかご教示いただけますか? よろしくお願いいたします。

専門家に質問してみよう