タイトル未定 (2000年5月11日〜)

2000/5/17

う〜む、ひと月もの間何も書かないというのは酷すぎですな(泣笑)。

年代ものOS

なにを血迷ったか、XLVNS-1 Ver. 1.6を某古式OSでmakeしてみる。今では当たり前のような定数や関数がないためにエラーが起こって止まるため、止まったところで原因を見て修正…を何度か繰り返してmakeに成功。…したけど、ちゃんと動くんか? これ。

行き当たりばったりな修正の記録

  1. mmapが失敗したときの戻り値MAP_FAILEDが定義されていなかったため、#define MAP_FAILED (-1)とした。
  2. rand()関数の戻り値の最大値RAND_MAXが定義されていなかったため、定義しようと思うも、BSDスタイルとSystem Vスタイルで戻り値の範囲が違う(大汗)ために苦慮中。とりあえず、BSDスタイル(謎)を採用して#define RAND_MAX 2147483647でお茶を濁す(危なすぎ)。
  3. strerror()関数が存在しないため、sys_errlist[]を直接参照するように変更。無理やりマクロで収める。
  4. snprintfが存在しなかったので、sprintfで無理やりごまかす(超危険)。こいつはさすがに何か考えないといかんだろな…。

…というわけで、あまりのquick hackぶりが恥ずかしすぎるので差分はなしです。


コンパイルが終了して、いざ動かすべく「雫」を探し回るもまったく見つからず。「To Heart」は出てきたんだけどなぁ…、もう一個買うか…(笑)。

2000/5/19

古式OSとわ

はわ〜、バレてる〜(笑)。一行に書いたのが敗因か? それとも…(爆)。snprintf()については、とりあえず暇をみて「パス名生成部分/その他」にわけてまともな差分を作りたい…。(すぐやれ > 自分)

といっても、"__FreeBSD__"のようなOS固有のpre defined symbolをまったく知らなかったり(これって、コンパイラのオプションかなんかで調べられるんでしたっけ?)、そもそも「snprintfってなに?」とばかりFreeBSDのマニュアルページを見に行ったりという体たらくなので(よくよく考えればstrnxxx()と同じノリの関数なのですね)、いつになることやら(苦笑)。


なっきー