DOSコンパイラでsystem関数を使う方法

このQ&Aのポイント
  • llcのDOSコンパイラでsystem関数を使うと正しいコマンドインタープリタの名前を入力するメッセージが表示される問題があります。
  • llcのソースコードをDOSコンパイラ用に書き換える方法を教えてください。
  • llcのソースコードをDOSコンパイラでコンパイルするとsystem関数が動作しない問題が発生しています。
回答を見る
  • ベストアンサー

llc system("dir").c

llcのDOSコンパイラでsystem("dir");というソースを 含めると、その部分で実行時に 正しいコマンド インタープリタの名前を入力してください. (例 : C:\COMMAND.COM) >> というメッセージが表示されます。 #include <iostream.h> int main() { system("dir"); return 0; } このソースをDOSコンパイラ用に書き換えたいのです。 #include <stdio.h> int main() { system("dir"); return 0; } このようにするとllcでコンパイルできますが、おそらく #include <stdio.h>しか使っていないためにsystem関数がうまく 動作しないようです。 どうしたらシステム関数のようなことができますか?

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

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

こんばんは system()関数はstdlib.hに入っていると思います。 ですので、 #include <stdio.h> #include <stdlib.h> int main() { system("dir"); return 0; } でご確認ください。

basukento
質問者

お礼

質問のllcはlccの間違いでした。 stdlib.hでできました。ありがとうございました。

関連するQ&A

  • C言語で乱数がうまく効きません。下記のソースでコンパイルして実行すると

    C言語で乱数がうまく効きません。下記のソースでコンパイルして実行すると結果が130固定となってしまいます。 #include <stdio.h> #include <stdlib.h> int main(void){ int x; x = rand(); printf("%d",x); return 0; } 使っているコンパイラはBorland C++ 5.5.1です。何か間違いでもあるのでしょうか?よろしくお願いします。

  •  現在、私はC言語を学んでいます。

     現在、私はC言語を学んでいます。  プログラミングの初期の初期の問題なんですが、 「Hello World」という有名なプログラムがありますよね? それについての質問です。 #include<stdio.h> main() { printf("Hello World"); return 0; } も #include<stdio.h> main(void) { printf("Hello World"); return 0; } も #include<stdio.h> int main() { printf("Hello World"); } もちゃんと表示できます。 ここで質問です。 int main(void) int main() main() main(void) はどう違うんですか? あと、 return 0; はあっても無くてもいいようなんですが どういう意味があるんでしょうか?

  • cではよくてc++ではダメな理由

    #include <stdio.h> #include <stdlib.h> int main(void) { int *x; x = calloc(1, sizeof(int)); if (x == NULL) puts("記憶域の確保に失敗しました。"); else{ *x = 57; printf("*x = %d\n", *x); free(x); } return 0; } 上のソースなのですがcallocの戻り値がvoidなのでintにはキャストしてくれみたいなことを コンパイラに言われます。 cではコンパイルできてc++ではコンパイルできないのはなぜでしょう。

  • C/C++のインラインアセンブラに関する質問

    使っているコンパイラはボーランドのフリーのC++のコンパイラなのですが インラインアセンブラのソースをコンパイルするとこんなエラーメッセージがでます( 警告 W8002 roger.cpp:8アセンブラを使う為コンパイラを再起動した(関数(main()) エラーE2133 ’tamsm32.exe'を実行できない とエラーメッセージが出ます 調べても解決方法がわからないのですが 解る方は教えてください ついでにコンパイルしようとしたソースは↓です #include<iostream.h> void main(){ int w=8; int w2=5; _asm{ mov eax,w mov edx,w2 }; cout<<w<<endl; };

  • system関数がうまくいかない

    windows c++ でsystem関数を使い任意の実行ファイルを動かそうとしてもうまくいきません。 エラーはcharからintにイニシャライズできません となります。また実行ファイルにスペースがあったら不味いのでしょうか。 #include <stdio.h> #include <stdlib.h> int main (void) { int=system("C:/Documents and Settings/shun/My Documents/aaa/project abc1/Debug/project abc1.exe"); return 0; }

  • C言語 main関数とsum関数の記述順について

    はじめまして。 【苦しんで覚えるC言語】(Web版)でC言語を学んでいる初学者です。 【第1部:C言語基礎編】>【関数の作り方】>【自作関数を作る】の部分(http://9cguide.appspot.com/11-01.html#S2)でつまづいています。 下記のような、1から100までの数字の合計を表示するプログラムが例題として取り上げられています。 しかし、ここが理解できないので、次の【プロトタイプ宣言】に進めずにいます。 例題1  sum関数をmain関数の後に記述した場合(プログラムが実行されない)。 #include <stdio.h> int main(void) { return 0; } int sum(void) { printf("%d\n",(1 + 100) * 100 / 2); return 0; } 例題2  sum関数をmain関数の先に記述した場合(プログラムが実行される)。 #include <stdio.h> int sum(void) { printf("%d\n",(1 + 100) * 100 / 2); return 0; } int main(void) { return 0; } 例題1の場合、【まずmain関数を作り、次にsum関数を作りました。この場合、main関数を解析している段階では、sum関数は発見されておらず、従って、main関数の中では、sum関数を使うことは出来なくなってしまいます。】との説明がありますが理解できません。 コンパイラがどのような順番でプログラムを処理しているか理解できていないので分からないのだと思います。 例題1の場合と例題2の場合の両方について、コンパイラがどのような順番でプログラムを処理しているのかを具体的に教えてください。 どうかよろしくお願い致します。

  • C++のコンパイルエラーが

    おこります。 --------------------------------- #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; } -------------------------------------- をコンパイルするのですができません。 以下のエラーが出ます。 --------------------------------------- エラー E2209 sample.c 1: インクルードファイル 'stdio.h' をオープンできない 警告 W8065 sample.c 5: プロトタイプ宣言のない関数 'printf' の呼び出し(関数 main ) *** 1 errors in Compile *** -------------------------------------

  • Visual Stadio でのC言語ですが

    すごい初歩的な質問で申し訳ないのですが 画面にabcdeと表示させるときに通常のコンパイラーだと getchar();と入れなくてもいいのですが VisualStdioだと、これを入れないとコンソール表示をしてくれません。 どうしてなのでしょうか? 決まりといわれてしまえばそれまでなのですが・・・ #include<stdio.h> int main(void) { printf("abcde\n"); getchar(); return 0; }

  • DOSプログラムが完全に終わらないかもしれない

    コンソールのアプリケーションとかバッチフアイルとかで遊んでいると、 MS-DOSプロンプトのウインドウを閉じようとした時に、 保存していないデータは全て失われます といったようなダイアログが表示されることがあります。 exitなど、コマンドが完全に終了していない問題に近そうな現象が起こりました。 #include <stdio.h> #include <stdlib.h> int main() { char str[2000] = "a", *p; system("dir"); if(*str)return 0; p = str; return 0; } これをC++でなくC言語としてコンパイルしました。 最後の2行は実行されません。なのに、この部分は結果に影響します。 str[2000]では問題は起きませんでした。 str[3000]ぐらいから、この実行ファイルを実行しても、何も起こらず 次のプロンプトが表示されたり、 正しいコマンド インタープリタの名前を入力してください. (例 : C:\COMMAND.COM) >> と表示されたりします。 ソースの最初のreturn 0;は実行されます。それなのに、その後に p = str;が実行され、strの確保容量によってエラーになるようです。 ソースに間違いはありませんよね? 使用したコンパイラLSI自身のエラーなのでしょうか? system("dir");の次に、exitのようなものが必要なのでしょうか?

  • BCC32のコンパイルでDOSアプリ

    bcc32 test これでコンパイルしてできた実行ファイルはWin32でした。 クイックビューアで見た時にDOS EXECUTABLEと表示される ようにコンパイルするにはどうしたらいいんですか? 下記がtest.cppのソースです。 #include <iostream.h> int main(){ printf("hello"); return 0; }

専門家に質問してみよう