まったりと呼吸する日々。
fread()のeofが立つタイミング。次のようなテストプログラムで7バイトのファイルと10バイトのファイルを読んでみる。
void fread_test()
{
FILE* fp = fopen("data", "r");
char buf[100];
int r;
r = fread(buf, 1, 5, fp);
printf("r = %d, eof = %d, error = %d\n", r, feof(fp), ferror(fp));
r = fread(buf, 1, 5, fp);
printf("r = %d, eof = %d, error = %d\n", r, feof(fp), ferror(fp));
r = fread(buf, 1, 5, fp);
printf("r = %d, eof = %d, error = %d\n", r, feof(fp), ferror(fp));
データが7バイトのとき,2回目のfread()でeofが立つ。しかしデータが10バイトのとき,2回目のfread()ではeofは立たず,3回目のfread()でfeof()が非0を返す。
follow-up(s): 2000.10.07/prog
軽く飲んで,ビリヤードに興じる。今日はかなりダメダメ。手玉があさっての方向に飛んでいったり。
謎の冊子:「ものみの塔」,「目ざめよ!」。しかし題材はなかなか興味深いな。すなわち,ハッブル宇宙望遠鏡,原子物理学,インフレーション宇宙論,元素周期表,4つの力(電磁気力,強い力,重力,弱い力),光合成など。で,これらを踏まえて,「すべては偶然に起きたのか」...「微妙に調整されていなければならない」...
会社帰りに軽く飲む。うーん,確かに組織という面では難しい点があるかもね。伸びてる会社に共通すると思うが,組織が安定的ではないというか混乱してる部分もある。
明日から監査法人の対応とか。来週は経理研修で講師役とか。通常業務回る?
(2006.8.5) この日の日記は、加筆・修正のうえ、IPv6ソケットプログラミングに移動しました。
トヨタプリンセスカップ2000決勝,Julie H. Decugis vs. Serena Williams,とてもよかった。Serena,なかなか猛々しいぞ。TOYOTA PRINCESS CUP
B'zの「RING」を熱唱したり。いや家の中で。
The Rock。しかし最近前に観た映画多くない? いやSean Connery, Nicolas Cage格好いいから許す。The Internet Movie Database (IMDb).
今日ちょっと気になったのは,ホントに洒落にならん兵器の発射ボタンを人間は押せるか。VXガスも大概だけど,端的には核兵器な。以前新聞で見たと思うが,先制核攻撃と報復の場合でどちらが被害が少ないか,というアメリカでのレポートがある。それによると明らかに先制核攻撃の方が被害が少ない。でもだからといって,じゃあ発射しましょ,とはならんでしょ。なんでやろね。
Michael Schumacher, 2000 World Championおめでとう!!! FIA homepage, Ferrari Official Web Site
(2006.8.5) この日の日記は、加筆・修正のうえ、IPv6ソケットプログラミングに移動しました。
夕御飯はピザ・ハットのピザ。なかなか美味し。トマトはもう少し酸味が利いてるとなおよし。
Q's Nicolatter for Xの新版を公開。
gtk+版が依然として苦戦。クライアントが終了したときにDestroyNotifyイベントを受け取りたいが,gtk+版でどうすればいいかが分からない。
朝,カバンの中のペットボトルが大洪水。本とかえらいことに。とほほ。
会社帰り,5人でカレーを食べに行く。専門店で10倍カレー。美味いが辛さがある意味異常。号泣する。うへ,ちょっと胃がぐるぐる。
Unicode表を実装。ただしEUC-JPにある文字しか入力できない。そういえばJava環境だとUnicodeの切り取り・貼り付けができるだろう。この辺,どうなってるか調べてみよう。
-Dオプションでデーモンになれるようになった。手元のLinuxではちゃんと動いているようだが,他のOSでも動くかはあまり自信がない。テスター求む。
[fm] welcome to freshmeat.netに登録してみたり。本気?
監査法人さんの応対,まぁ終了。最後の方はあまり入れなかったけど,なかなか楽し。
現在のロケールでのCES名を取得する方法。今までできないと思ってたけど,結構簡単に取れるのね。
#define _XOPEN_SOURCE 500 // <langinfo.h>
#include <stdio.h>
#include <locale.h>
#include <langinfo.h>
int main()
{
const char* loc = setlocale(LC_ALL, "");
const char* ces = nl_langinfo(CODESET);
printf("locale = '%s', ces = '%s'\n", loc, ces);
return 0;
}
これを実行すると'ja_JP.ujis','EUC-JP'が返る。nl_langinfo()の返り値はiconv_open()に渡せる名前になるようだ。
ついにgtk+版でクライアントの終了を取得できるようになった。gtk+はXイベントのフィルタリングができることになっているが,フィルタするコールバック関数がgdk windowに結びつけられているため,アプリケーション外で生じたイベントをフィルタできない。したがって,先にイベントをフィルタし,フィルタする必要のないものをgtk+に渡すようにする。
while (true) {
if (XPending(top_display)) {
XEvent xev;
XPeekEvent(top_display, &xev);
if (filterXEvent((GdkXEvent*) &xev, NULL, NULL)
== GDK_FILTER_REMOVE) {
XNextEvent(top_display, &xev);
continue;
}
else
gtk_main_iteration();
}
else {
if (gtk_events_pending())
gtk_main_iteration();
}
}
プロセスにXイベントが飛び込むタイミングが気になるが,まぁ,ちゃんと動いてるみたい。
梅田でCDとマンガを入手。
時空を行ったり来たりすると話がとたんに難しい。
今日,昼の番組でナンバーズを当てるつもりのコーナーがあった。なんか頭悪そう。ナンバーズの当たりは0000から9999まででランダムに選ばれるのよね? だったら,過去の実績は何の役にも立たない。すなわち,番号xが過去に全く出ていないとしても,だからといってその番号が当たりやすい,ということは「ない」。選ばれやすさは毎回同じ。しかし事実としては選ばれやすさは全く同じだが,異なると「信じている」人がいるということは,収益機会がある,ちゅうことやね。すなわち過去の実績が将来の選ばれやすさに影響を与えると信じている人にとっては,過去の実績からそれらしい集計を行って,「今までに出現回数が少ない番号」を提示する何かは効用としては有用だろう。ふむ,そのようなソフトウェアはある程度需要があるのかしら?
Netsphere Laboratories http://www.nslabs.jp/
[PR]