自分のところにコピー
ファイルを,所定の場所(ディレクトリ)にコピーして使用する際,次のコマンドが便利です.なお先頭の「$ 」はプロンプトです(これは打ち込まないように).
$ cd コピー先ディレクトリ $ cp コピー元ファイル .
cpコマンドの最後のピリオドは,カレントディレクトリを表します.cpコマンドは,最後の引数をディレクトリ名とすれば,そこへファイルをコピーすることができます.
演習を通じて,コマンド実行の方法にはいろいろあることを知り,その中から最適なものを選びながら,省力化を図るようにしましょう.
コンパイルの方法
server0.cがあるとき,実行ファイルserver0を作るためのコマンドには,何種類かあります.以下は,1年のプログラミング科目でこちらからお見せしたり,みなさんが演習中に実行してきたりしたものだと思います.
$ cc -o server0 server0.c
$ cc server0.c -o server0
$ make server0
このうち3番目の方法(makeコマンド)を推奨します.タイプ数が少ないからです.それと,このコマンドを実行後,「.」「/」のあと,Altを押しながら「.」で,「./server0」と打ち込まれたことになり,あとはEnterで実行できます*1.
なお,実行してはいけないコマンドがあります.
$ cc -o server0.c server0.c
$ cc server0.c -o server0.c
これらは,実行ファイルをserver0.cにせよということで,ファイルが破壊されてしまいます.cc(gcc)コマンドの「-o」オプションの後は,実行ファイルの名前を指定します.それはソースファイルと必ず異なることには,くれぐれも注意しましょう.
プログラムの動作を書く課題
プログラムの動作を書く課題について,回収したみなさんのファイルをざっと読みました.
採点時に,次の記述があれば,減点する予定ですので,見直してください.
- スペルミス・誤変換:「conect」「コネクション確率時」「化せられた条件」「if分」
- ASCII文字にしよう:「ー1」「ー1」
- 使用していない:「gethostname」
- 不適切な説明:
- 変数rpは線形リスト構造になっている
- 全ての処理が終わるとcloseを用いてソケットを閉じる
- close関数にて終了する
- 動詞に配慮を:
- ソケットを探す
- sが-1のときif文で処理をスルーする
- 次の反復に突入する
*1:bashやzshで,Emacs表記でいう M-. をすると,直前のコマンドの最後の引数を打ち込むのと同じ効果になります.「cc server0.c -o server0」でコンパイルした場合にも,有効です.10年以上前の演習の中で,「cc -o totemo_totemo_nagai_fairumei very_very_long_file_name.c」と「cc very_very_long_file_name.c -o totemo_totemo_nagai_fairumei」のどちらがキーストロークを少なくできるか,という問題を出したことがあります.
*2:コピーやコンパイルの方法を3年生に? と思った人がいるかもしれませんが,使わないと忘れるものです.この科目に限らず,演習の初回は,コマンドの復習に時間をとらざるを得ません.それと,上で書いたとおり,あることをするのに複数の方法(コマンドなど)があります.こちらとしては代表的なものを提示して,その中で各学生に「自分に合った方法」を選んでほしい---こちらが提示したものを選ばないのもよし---という期待があります.
*3:Web掲載の情報はwhyやwhatを重視し,テキストファイルのほうはhowを重視している,という区別もできます.