2004-10-01から1ヶ月間の記事一覧

バッファ オーバーフロー

固定長バッファ*1を越えるデータを送り込むことにより データ領域が破壊されること。 これを防ぐため 例えば、gets() を fgets() に変えるときには 次のように訂正。 fgets(buf, sizeof(buf), stdin); 入力するバッファの長さ(範囲)をチェックしない 危ない…

プログラミング言語 C

"K & R"(isbn:4320026926) → そろそろ読まないと . . .*1 その前に 誤訳リストをダウンロードして印刷しておく。*2 $w3m -dump homepage2.nifty.com/tenk/scrap/kr2rev.htm > kr2_err.txt $a2ps -B -1 kr2_err.txt -d (↑の a2ps は vine plus ので 日本字印…

はじめての C

コード in_out を 少しいじってみる。 /* in_out.2 */ #include #define MAX 100 /* * 整数をいったん文字列として入力して、 * 短い整数型(short int)に変換して出力 */ main() { short int data; char buf[MAX]; while(fgets(buf, MAX - 1, stdin) != NULL…

はじめての C

以前 UNIX MAGAZINE 2002年11月号の「Cプログラミングの基礎」(山口英氏)をノートに書き写していたのを思い出した。 そのときは よくわからなかったが、今は 半分ぐらいなら理解できる。 それには 小さなプログラムコードが載っているので ちょっと いじっ…

miscellanies

今 読んでる本。 どこから読んでも おもしろい !!トラベリング・ウィズ・ゲバラ作者: アルベルト・グラナード出版社/メーカー: 学習研究社発売日: 2004/10/06メディア: 単行本この商品を含むブログ (14件) を見る

はじめての C

ランダムな整数の並んだファイルをつくるプログラムを作成せよ。 /* random */ #include #include #define MAX 20 /* ←変更可能に */ struct List { int data; struct List *next; }; main() { FILE *fp; int i; struct List *prev, *curr; prev = NULL; fp …

はじめての C

条件演算子(三項演算子) ・形式は A ? B : C ・if A then B else C という条件分岐を記述する。 ・return()文中や、判断の結果を値として表す場合に使われる。 実数を入力すると その数の絶対値を表示し 偶数か奇数かを判断するプログラムを作成せよ。 /* sa…

はじめての C

「文字列の操作で使う関数」 fgets() ←ファイルから(ストリーム*1として) 1行分の文字列*2を読み込む。引数は、 ・第1引数 : 文字列を格納する場所を指し示すポインタ ・第2引数 : 文字列のサイズの上限値 ・第3引数 : 読み込み先のファイルのポインタ*3 の…

miscellanies

manual page にはないが la というコマンドがある*1。 $la は $ls -a と同じです。*2 *1:Vine だけ ? *2:←ドットファイルも表示

Mozilla 1.4.3 - Vine

Vine Linux 2.5 を更新すると、Mozilla 1.2.1 が 1.4.3 に変更されている。機能も拡張しているようなので、"はじめての Mozilla 1.4" で確認。 このままでは Flash-Player が機能しない。新しく設定ファイルを作成するかわりに 今回は Flash_Player_7 をイン…

はじめての C

「文字と文字列の操作で使う関数」 getc(), getchar() ←入力のとき fgets() ←今回はパス putc(), putchar() ←出力のとき ・getc() とgetchar() は 1 バイトずつ入力して、ファイルの終わりになると EOF を返す。 ・getchar() は getc(標準入力) と同じ。 ・p…

はじめての C

関数 main() の引数を用いて 指定した名前のファイルに 指定した範囲の連続数を書き込む プログラムを作成せよ。 /* hikisu_4 */ #include #include /* 関数 atoi() に必要 */ /* * [使い方] $./hikisu_4 ファイル名 開始数 終了数 * [例] $./hikisu_4 temp …

はじめての C

ファイルを開閉して 読み書きをするためには、ファイル型のポインタ (fp) を用意しておく。 FILE *fp; ↑この "FILE" はヘッダファイル stdio.h で規定されている typedef 構造体。 renraku というファイルをつくって、それにメッセージを書き込むプログラム…

はじめての C

関数 main() には 特別な引数が 2つある。 1. argc : プログラムのパラメータ(引数)の数に 1 を加えた数字。 2. argv[] : パラメータ(引数)の文字列へのポインタ。 上の 2つの引数を使って、それ自体のパラメータの数を表示するプログラムを作成せよ。 /* hi…

イラストメーカー

自分の似顔絵ができるというので、挑戦。 しかし、絵の才能がゼロだ !*1 *1:実物は、こころもち貧相です