• ベストアンサー

gccの後の実行テクニックおしえて

最近UNIXでC言語を勉強しているのですが、gccしたあとに実行時のテクニックに苦労してます。 (1)実行時に必要なデータを、dataファイルから参照する方法 (2)実行結果をファイルとして保存する方法 を教えてください。 実行ファイル a.out  dataファイル a.data  結果ファイル ans.data と仮定して、コマンド例つきの返事だと嬉しいです。 宜しくお願いします

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

  • ベストアンサー
回答No.1

a.out < a.data > ans.data とすれば a.data が標準入力、ans.data が標準出力 となります。 a.out < a.data >> ans.data とすれば ans.data の最後に追加します。 fopen や fclose を意識しなくていいので、 勉強のしはじめには便利じゃないでしょうか。 がんばってください。

kaituyo
質問者

お礼

ありがとうございました。おっしゃるとおりしたら出来ました。 ただ、回答の中にある fopen fclose ってなんのことですか?

その他の回答 (2)

  • sssohei
  • ベストアンサー率33% (33/98)
回答No.3

Linux なんでしょうか?^^; C 言語の関数などは man(jman かも) fopen 等とすればリファレンスが読めるかと。 もし、日本語のが出ない場合は http://www.linux.or.jp/JM/ などを活用されてみてはどうでしょうか? fopen でファイルを開いて ファイルに関する処理をして fclose でファイルを閉じる というものです。

参考URL:
http://www.linux.or.jp/JM/
kaituyo
質問者

お礼

ご返答ありがとうございます。 また、きっと投稿することがあると思います。 そのときも、宜しくお願いします。

回答No.2

#1 の補足より >fopen fclose ってなんのことですか? ファイル入出力するため、前処理、後処理をする関数です。 あとは、標準入出力関数名の頭に f をつければファイル入出力関数名になります。 大雑把に言うとこんな感じです。 どの参考書をお使いか分かりませんが、7章か8章あたりに詳しく載ってると思いますよ。

kaituyo
質問者

お礼

うーーーん! 今は、なんのことか良く分かりませんが、これから精進していきます。 ありがとうございました。

関連するQ&A

  • c言語の実行が分かりません

    C言語のプログラムを実行させる方法が分かりません。 unixでC言語を以下の手順で学習しています。 1 emacs上でファイル名.cというソースファイルを作成。 2 xterm上で gcc ファイル名.c と入力 その後xterm上で後一つコマンドを入力すればいいのですが、そのコマンドを忘れてしまいました。教えていただければ、ありがたいです。

  • ccとgcc

    ccとgcc とある業務の必要スキルに C言語(cc , makefile含む) とあるのですが、 ccというのはどこまでできればいいのでしょう? UNIXだとたいていgccとの事ですが、 gccでコマンドを付けつつコンパイルできる程度でいいのでしょうか? 管理なのであまり技術的なことはいらないと思うのですが、 こんなのつかうよ、というお話が頂ければ幸いです。

  • cygwinでのgcc

    畏れ入ります。 UNIXどタコですm(__)m 最近CYGWINで簡単にUNIXが体験できるということで早速インストールしました。 KDEとGNOME無事起動しました。 で、実は図書館で「Xlibで簡単プログラミング」というのを借りてきたので、ちょっと遊んでみようと思いとりあえずc言語がコンパイル、実行できるかどうかやってみたのですがうまくいきませんでした。 #include <stdio.h> int main(){ printf("HelloWorld \n"); } のようなプログラムをvimで作成するところまではうまくいきました。homeディレクトリに作成されていました。 それで gcc hello.c とやればよいのですよね?! 実は文字がたくさん出て、コンパイルできたのかどうか・・・?そして、a.outというファイルができるのですよね?間違っていますでしょうか? とりあえず、できていません・・・(>_<) ./a.out としても、no fileです・・・ なにか間違っていますでしょうか?

  • gccによって、BOM付きのUTF-8で出力する

    こんにちは。 gccコマンドは、cygwinに付属していたものを使っています。 fopen関数でファイルを出力用にオープンし、fputs関数などで、何かしらの文字を書き込むCソースファイルを作成したとします。 このCソースファイルから、実行ファイルをビルドする際、 gccコマンドをオプション無しで使って実行ファイルをビルドし、その実行ファイルを実行すると、エンコーディングが"BOM無し"のUTF-8である出力ファイルが作成されます。 ですがこれだと、Emacsなどで開いた時に、バッファのコーディングシステムがraw-textになって、文字がきちんと表示されません。 gccコマンドには、ビルドされた実行ファイルが、エンコーディングが"BOM付き"のUTF-8であるファイルを出力するように指定する、オプションはありますでしょうか? 今回、ググっても1つも手掛かりが見つからなかったので、質問させて頂きましたので、 gccに詳しい方、是非よろしくお願い致します。

  • 実行オブジェクトからソースを抽出することは可能ですか?

    Windows2000からUnixサーバにLAN経由でアクセスして、 gccコマンドでコンパイルしたCの実行オブジェクトファイルから Cのソースを抽出する方法はありますでしょうか。 解答の程、宜しくお願い致します。

  • UNIX & Linux の標準出力で得たデータを、C言語のローカル変数に取り込むには?

    c言語の関数を実行中に、UNIXにあるシェルコマンド"wc"の標準出力から得られるデータを、直接ローカル変数に入れたいと思います。 int hoge(void) { int ans; ans = system("wc"); return } こんな感じにしたかったのですが、systemコマンドでは、戻り値を期待できずに居ます。 何か善い方法はありませんか?

  • GCCにてディレクトリ・ファイル操作等のできるPGを作成したい。

    GCCコンパイラを使い、UNIX上のディレクトリ・ファイルの操作 また、各ファイルシステムの総容量・空容量等の確認を行いたいと思っ ているのですが、以下の処理を実行する関数を見つけることができませ んでした。 ----------------------------------------------------------------------------- ディレクトリの移動                  (chdir コマンド相当) ディレクトリ内のファイル・サブディレクトリ一覧の取得 (dir/ls コマンド相当) ファイル日付の取得                  (ls -l コマンド相当) ディスク空き容量等確認                 (df -k コマンド相当) ファイルの削除                    (rm  コマンド相当) ----------------------------------------------------------------------------- もし、ご存知の方がいらっいましたら、教えて頂きたく存じます。 また、GCCを使ったUNIXシステム管理プログラミングについて、解説されている 書籍・サイト等を御存知でしたら教えていただきたく思います。

  • windowsでの遠隔実行

    パソコン「A」でモデル作成作業した後、データを送って、 解析演算だけを別のパソコン「B」で実行させるときに、 WINDOWS(XP)でも、UNIXのrloginのように、パソコンAを パソコンBの端末としてコマンド実行を遠隔操作するような 方法がありますか? 実行するのは、コマンドプロンプトからバッチファイル名の 打ち込みでの演算だけす。GUI等は不要です。

    • 締切済み
    • CAE
  • MinGW-gccでの実行ファイル作成法

    今まで、visual studio 2008を使用して、実行ファイルを作っていたのですが、 今回、gccで実行ファイルを作らなければいけなくなりました。 どなたかどういったコマンドオプションを用いれば実行ファイル作成までたどりつくのか 知っている方がいれば教えていただきたいです。 ちなみに、現在 >g++ -o p -O3 -lm ./src/p.cpp ./src/m.cpp -L ./ -lica とコマンドを打っていますが : undefined reference to `_imp___Z13icaPdiiS_b'  とリンクが上手くいっていない感じのエラーが返ってきます。 このエラーの改善方法についてもぜひどなたかご教授ください。 お願いします。

  • Cのソースを毎回コンパイルしないと実行結果が見れないのが不便で・・・

    こんにちは。C言語の勉強をしている初心者です。windowsXPでgcc-2.95を使っています。 ソースファイルをメモ帳で作ってから、コマンドプロンプトで入って、gcc sample.c -o sample のようにしてコンパイル?してから、実行ファイルのsampleができて、コマンドラインでsampleと入力して実行結果を確認しています。 でも、勉強中の身なので printf("Hello\n"); の部分を printf("Hello");とか printf("%d", 3);とか printf("%s", "Hello");とか ちょっとずつ書き変えて実行結果がどうなるのかを身ながら学習しています。 ソースファイルの一部分を書き換えて結果を比較したいだけなのに、メモ帳を開いて編集して、またコマンドラインからコンパイル?をして、実行ファイル名で実行という作業を何回も繰り返すので手間がかかって不便だな・・・と感じます。 もっと便利な環境ってないのでしょうか。ソースを書いている状況のままで、試しにプログラムを実行させて結果を比べながら作業できる環境ってないのでしょうか。 この説明で理解してもらえるか不安ですが、ご存知の方教えていただけませんか?