プロが教えるわが家の防犯対策術!

VineLinux2.1のvi:スクリーンエディタを利用して簡単なプログラムを実行させたいのですが、コンパイルしたファイルを実行すると
a.out : command not found
というエラーがでてきます。
実行のさせ方がおかしいのでしょうか?

今回作ったプログラムです。
#include <stdio.h>
int main(){
printf("Hello World!");
return 0;
}

A 回答 (5件)

Segmentation fault


が表示されたということは実行できたということですね。
# …でも、真っ当なプログラムになってないみたいですが。

Path (←プログラムを探すディレクトリ…というと語弊があるかな?)
に Current Directory (現在のディレクトリ)が含まれていないので、
Current Directory のファイルを実行する場合には、
「./」をファイル名の前に書いてやるなどの必要があるのです。
このあたりは DOS とは違います。
    • good
    • 2
この回答へのお礼

新しく作ったディレクトリで作業をしていたので駄目だったというわけですね。
実行できているということは、プログラムの組み方が間違っているということですね。
ありがとうございました。
プログラムをいじっていろいろ試してみます。

お礼日時:2002/05/24 15:33

コンパイル後にカレントディレクトリに作られた a.out を実行する時は ./a.out でやってた方が良いと思います。

PATH の設定を変えてカレントディレクトリも実行できるようにしちゃうとちょっと危なっかしいと思うので。

で、 Segmentation fault と出るというのはそのプログラムのどこかが間違っていてNULLポインターをアクセスしていたりするからだと思いますが、見た感じ間違いようがなさそうなプログラムですね・・・。よくわかりませんが、他のプログラムもそのディレクトリでコンパイルしていてその時作られた別のプログラムの a.out が残っていたりしませんか? その疑いがある場合は再度コンパイルしてから実行してみましょう。

あと、たいした問題ではありませんが、そのプログラムのままだと Hello World! の文字列出力後に改行がないので見た目が変になるかも知れません。なので printf("Hello World!\n"); にした方が良いかも(両方試してみれば違いが分かると思います。わからなかったら printf("Hello\nWorld!\n"); とかして見ましょう。\n が何かということについては入門書などを見て確認して下さい)。
    • good
    • 1
この回答へのお礼

>で、 Segmentation fault と出るというのはそのプログラムのどこかが間違っていてNULLポインターをアクセスしていたりするからだと思いますが、見た感じ間違いようがなさそうなプログラムですね・・・。よくわかりませんが、他のプログラムもそのディレクトリでコンパイルしていてその時作られた別のプログラムの a.out が残っていたりしませんか? その疑いがある場合は再度コンパイルしてから実行してみましょう。

すみません。確認してみるとa.outは別のプログラムでした。
あと、\nの有無の違いもちゃんと分かりました。
ありがとうございました。

お礼日時:2002/05/25 18:28

追記です。


下記 URL を参照してください。

参考URL:http://www.jp.freebsd.org/QandA/HTML/130.html
    • good
    • 0

ひょっとして実行許可をしてなかったりしてσ(^^)


#chmod a+x a.out
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
#chmod a+x a.out
#a.out
bash: a.out: command not found
と、なりました。
プログラムがおかしいのでしょうか?

お礼日時:2002/05/24 15:23

command not found なので、そのまま


a.out が見つからないというエラーかと思います。

ls で見たときに a.out はできていますか?
./a.out
と叩くとどうでしょうか?

# Current Directory に Path が張ってない関係?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ls で見たときに a.out は緑色で出てきています。
./a.out
と叩くと
Segmentation fault (core dumped)
と、出てきました。
# Current Directory に Path が張ってないというのは、どういうことなんでしょうか?

お礼日時:2002/05/24 15:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!