C

kqueueでファイルの状態を監視する

ファイルの状態を監視するために、Linuxならinotifyが簡単に使えるのだけれど、最近メインで使っているBSD系だとkqueueを使うしかなさそうなので、頑張って使ってみた。 C: sys/event.h 指定したファイルの変更と削除について監視する。 $ echo "foo" >> foo…

整数に丸める時の注意

C

Pythonだと >>> round(1.5) 2.0 >>> round(2.5) 3.0 >>> round(3.5) 4.0 >>> round(4.5) 5.0 Rだと > round(1.5) [1] 2 > round(2.5) [1] 2 > round(3.5) [1] 4 > round(4.5) [1] 4 round(偶数.5)の結果は実装によって異なるらしい。端数処理 - Wikipediaに…

C文法

参考:ANSI C grammar (Lex) 参考:ANSI C grammar (Yacc) 参考:http://lists.canonical.org/pipermail/kragen-hacks/1999-October/000201.html 改めて文法確認。初心忘れるべからず(ちょっと違う)。

__gxx_personality_v0

C

g++(gcc)で undefined reference to `__gxx_personality_v0'というエラーが出たら $ gcc foo.cpp -lstdc++とリンクするライブラリstdc++を指定する。 g++のバージョンによっては、起こる模様。 $ gcc -v /usr/lib/gcc-lib/i386-vine-linux/3.3.2/specs…

IPv4からIPv6対応に

ソケット構造体 sockaddr_in→sockaddr_in6IPアドレスとポート番号を格納する。実際は、移植性を高めプロトコル非依存にするために、sockaddr_storageを使用する。 addrinfo 統一的なプログラムを作成するために作られた構造体。1ホストに複数のアドレスが付…

NPTL参考リンク

NPTL Design paper http://kerneltrap.org/node/422 Native POSIX Thread Library - Wikipedia http://linuxdevices.com/articles/AT6753699732.html NPTL glibc-2.4 リリース | スラド デベロッパー http://pcweb.mycom.co.jp/news/2006/03/07/342.html "本…

ここまでくると異常どころか間違いなのだ

C

古本屋で林晴比古『Cプリプロセッサ・パワー』という本を見つけた。900円。立ち読みして買わず。 要するに、「#define」や「#ifdef」を使って、ソースコードの可読性を高め、エラーを減らすために、プリプロセッサを活用しよう、という内容の本だった。 ソ…

WinSockとバークレーソケット

UNIXのバークレーソケットはint型、WinsockのソケットはSOCKET型(実態は整数型)。 UNIXではソケットはファイルディスクリプタと同様に扱えるためread⁄write&closeを使用出来るが、Winsockはrecv⁄send&closesocketを使用する。 エラー定数が異なる。 両プラ…

知らない演算子があったとは

C

『独習C』第3版を立ち読みしていて発見。 #include<stdio.h> #define QUOTE(s) puts(#s) int main(int argc, char *argv[]) { QUOTE(Hello World); /* puts("Hello World") */ QUOTE(Hello World); /* puts("Hello World") */ QUOTE(Hello+World); /* puts("Hello+Wor</stdio.h>…

Friday the 13th(笑)

グレゴリオ暦において。 2000年1月1日から2399年12月31日までの400年、閏年*1も考えて 400(年)*365(日)+(100-4+1)(日)=146097(日) 146097(日)/7(日)=20871(週)よって400年分の日数は7で割り切れるので、400年後の同月同日の曜日は一致する。 1605年のカレン…

素数ゲッター

Cで素数ゲット。(コンパイル後、>./era.exe) Javaで素数ゲット。(コンパイル後、>java era 整数値) Excel(VBA)で素数ゲット。([素数]ボタンクリック) JavaScriptで素数ゲット。(整数値入力後、[素数]ボタンクリック) 素数って素敵ですな。某神父は…