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

Graphviz でシーケンス図

Graphviz でシーケンス図を書く。UML のシーケンス図に活性化というのがあるが、Graphviz では無理か ? 図 Graphviz でシーケンス図2010-02-01 修正。よりシンプルに digraph sample { graph [fontname = "monospace", fontsize = 10, rankdir = TD]; node […

C プログラミングでの 設定ファイル読み込み

Windows だと iniファイルを GetPrivateProfileString などで読めるが、 C 単体だとそんなのない。 C で ini ファイルのパーサを作るか、何かライブラリを入れるしかない。そこで、 ini ファイルの変わりにシェルスクリプトと環境変数を使うことを考える。設…

pthread で タイマスレッドの実装

pthread で 指定したタイムアウト時間にコールバック関数を実行するタイマスレッドを実装。 nanosleep で 10ms 毎に起床しタイマアウトをチェックする。起床タイミングは nanosleep の性能 によるので、古い Linux とかだと正確に 10ms にならない。 10 ms …

pthread で itron ライクな sng_msg と rcv_msg (例)

http://d.hatena.ne.jp/l1o0/20100119/1263910139 の使用例 #include <mbox_test.h> #define NUM_OF_THREAD 3 void test_example_init() { int ercd; int i; u_int mbox_ids[NUM_OF_THREAD]; ercd = init_mbox_table(); if (E_OK != ercd) { fprintf(stderr, "init_mbox_t</mbox_test.h>…

nanosleep の精度

nanosleep が pthread のスケジューリングポリシーと優先度で違いが出るか実験。結果は、変わらない(当たり前?)。それより、 10 ms の nanosleep からオーバヘッド 1ms 程度以内 で復帰できるとは最近の Linux は精度があがってる。 #include <stdio.h> #include <stdlib.h> #in</stdlib.h></stdio.h>…

pthread で itron ライクな sng_msg と rcv_msg (ソースコード)

pthread で itron ライクなメッセージ機能の実装の続き http://d.hatena.ne.jp/l1o0/20100118/1263812821メモリブロックは malloc 使用。リングバッファをメールキューとして、リングバッファのアクセスを mutex でガード。 pthread_cond_signal で送信通知…

pthread で itron ライクな sng_msg と rcv_msg

pthread で itron ライクなメッセージ機能の実装。とりあえずヘッダファイル。メールボックスの数は NUM_OF_MBOX 、メールキューの大きさは NUM_OF_MSG で決め打ちにした。 #ifndef _MBOX_H_ #define _MBOX_H_ #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #inc</stdlib.h></stdio.h>…

Graphviz で凡例付き配置図

Graphviz で凡例付き配置図を書く。 図 Graphviz で凡例付き配置図 digraph sample { graph [fontname = "monospace", fontsize = 10]; node [fontname = "monospace", fontsize = 10]; edge [fontname = "monospace", fontsize = 10]; // node node [shape …

Graphvizで配置図

Graphvizで配置図を書く。 図 Graphvizで配置図 digraph sample { graph [fontname = "monospace", fontsize = 10]; node [fontname = "monospace", fontsize = 10]; edge [fontname = "monospace", fontsize = 10]; // node node [shape = box3d]; deployme…

Graphvizで凡例付きクラス図

Graphvizで凡例付きクラス図を書く。図案は ダイアグラム別 UML徹底活用 (翔泳社) より引用 図 Graphvizでクラス図 digraph sample { graph [fontname = "monospace", fontsize = 10, ranksep = 1, nodesep = 1]; node [fontname = "monospace", fontsize = …

Graphvizでクラス図

Graphvizでクラス図を書く。図案は ダイアグラム別 UML徹底活用 (翔泳社) より引用 図 Graphvizでクラス図 digraph sample { graph [fontname = "monospace", fontsize = 10, ranksep = 1, nodesep = 1]; node [fontname = "monospace", fontsize = 10]; edg…

Graphvizで凡例付きステートチャート図

Graphvizで凡例付きステートチャート図を書く。凡例に色々入れすぎたな。 図 Graphvizで凡例付きステートチャート図 digraph sample { graph [fontname = "monospace", fontsize = 10, rankdir = TD, compound = true]; node [fontname = "monospace", fonts…

Graphvizでステートチャート図

Graphvizでステートチャート図を書く。 図 Graphvizでステートチャート図 digraph sample { graph [fontname = "monospace", fontsize = 10, rankdir = TD, compound = true]; node [fontname = "monospace", fontsize = 10]; edge [fontname = "monospace",…

メール送信時に宛先とサブジェクトを確認

Mewでメール送信時に宛先とサブジェクトをミニバッファに表示して、チェックを促すようにした。 (defun my-mew-send-check () (let ((subject (mew-header-get-value mew-subj:)) (to (mew-header-get-value mew-to:)) (cc (mew-header-get-value mew-cc:)) …