2009-01-01から1年間の記事一覧

ドル→円のまとめ

海外在住者が日本に旅行に行きます。1万ドル程度の米ドル現金を.. - 人力検索はてな にてドルを円に両替する方法を調査したところ、いろいろと情報が得られた。自分でも追加で調べたところ多くの人に取ってはソニーバンクが最高過ぎるということが分かった。…

Pthread の排他処理のサンプル

自分用。 ソース (pthread_mutex.c) #include <stdio.h> #include <unistd.h> #include <pthread.h> #include <stdlib.h> #define MAX_THREADS 3 void start_threads(void); void thread_main(void *args); void synchronized_printf(const char* s); static pthread_mutex_t mut = PTHREAD_MUTEX_I</stdlib.h></pthread.h></unistd.h></stdio.h>…

C言語で、Gratuitous ARPパケットを送信するサンプル

自分用メモ。 #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <netdb.h> #include <string.h> #include <unistd.h> #include <ctype.h> #include <sys/types.h> #include <sys/socket.h> #include <sys/ioctl.h> #include <sys/param.h> #include <sys/sysctl.h> #include <arpa/inet.h> #include </arpa/inet.h></sys/sysctl.h></sys/param.h></sys/ioctl.h></sys/socket.h></sys/types.h></ctype.h></unistd.h></string.h></netdb.h></stdlib.h></stdio.h></errno.h>

C言語でNICの情報を取得するサンプル

eth0 の IPアドレス、MACアドレス、ifIndexを取得するサンプル。自分用メモ。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/ioctl.h> #include <net/if.h> #include <netinet/in.h> #include <arpa/inet.h> void get_ifinfo(char *devname, struct ifreq *ifreq, int flavor) { int iofd; if ((iofd = socket(A</arpa/inet.h></netinet/in.h></net/if.h></sys/ioctl.h></string.h></stdlib.h></stdio.h>…

3つのプログラミング言語での syslog の使い方メモ

C、Perl、Python でのsyslogのサンプル。 C #include <stdlib.h> #include <syslog.h> int main(int argc, char** argv){ openlog(argv[0], LOG_PID|LOG_PERROR, LOG_LOCAL0); syslog(LOG_INFO, "foo: %d", 123); closelog(); exit(EXIT_SUCCESS); } Perl #!/usr/bin/perl use st</syslog.h></stdlib.h>…

3つのプログラミング言語での getopt の使い方メモ

C、Perl、Python でのgetoptのサンプル。 とりあえず、help, version, user, password の4つのオプションを指定できるようにした。 使い方 % my_getopt --help % my_getopt -h % my_getopt --version % my_getopt -v % my_getopt --user=foo --password=abc …

Pythonでprefork型のデーモンを書く

Pythonのお勉強を兼ねて、先日 Cで書いた C言語でprefork型のデーモンを書く(3): デーモン化 - Sleepless geek in Seattle をPythonに移植してみた。 条件分岐、ループ、関数定義、ファイル操作、fork、wait、シグナルハンドラ、連想配列、などなど短いプロ…

C言語でprefork型のデーモンを書く(4): init スクリプト

prefork して、シャットダウン可能なデーモン本体ができたので、次はinit スクリプトを用意する。 適当なサンプルは、/etc/init.d/ 以下にたくさんあるのでそれを参考に書いてみた。 デーモン起動時に /var/run/my_prefork_daemon.pid が自動作成されるのを…

C言語でprefork型のデーモンを書く(3): デーモン化

prefork して、シグナルで綺麗に終了できるようになったので次はデーモン化する。デーモンをkill しやすいように プロセスIDをファイルに書いておくwrite_pid()関数と、デーモン化関数daemonize()を追加している。 my_prefork_daemon.c デーモン化の処理が入…

C言語でprefork型のデーモンを書く(2): 非デーモン prefork シグナルハンドラ付き

1つの親プロセスとたくさんの子プロセスという構成。親プロセスに SIGTERM を送ると、すべての子プロセスをきれいに終了させた後で終了するようにシグナルハンドラを追加したサンプル。 my_prefork_signal.c シグナルハンドラ付きのソース #include <stdio.h> #includ</stdio.h>…

C言語でprefork型のデーモンを書く(1): 非デーモン prefork サンプル

Cで書かれた prefork デーモン(daemon)のちょうど良いサンプルが見つからなかったので自分で書く。 ちょうど良いお手本がないので PerlのソースをCに移植した。 プラットフォームはCentOS5.2。 my_prefork.c ただの prefork のサンプル(デーモン化はしてい…

Cでハッシュテーブルを使うときのメモ

C

Cでハッシュテーブルを使いたくなったので、調べてみたら APR(Apache Portability Runtime) のハッシュテーブルのパフォーマンスが良いらしい。名前的に移植性も良さそうな気がする。 簡単な使い方を兼ねたサンプルをメモがわりに残す。プラットフォームはCe…

Windows Server {2000,2003,2008} でDSRを行う方法

「Keepalived + LVS + CentOS4 でロードバランサー(DSR) - Sleepless geek in Seattle」あたりで、Keepalived を使ったCentOS のロードバランスは簡単にできるようになったが、Windows Server の設定はどうやるんだろうと調べてみたら、こんな素敵なエント…

Postfixのコンテンツフィルターを複数設定する方法

Postfixには、ウィルススキャン や アンチSPAM などをフィルターコンテンツフィルターという方法でプラグインできる。 その際に、amavisd-newや自分で作ったカスタムフィルターなどを組み合わせたいときには、複数のコンテンツフィルターを併せて設定すれば…

メール1通あたりの最大サイズの設定

main.cf の最後に以下の行を追加。単位はバイト message_size_limit = 10240000

Ubuntu 8.04 LTS 日本語環境インストール メモ

しばらくUbuntuを使ってみて、動画も音楽も問題ないことが分かったので、今日うちで長年愛用してきた、Dell Inspiron 5100 のWindowsXPを消してUbuntu8.04LTSをインストールした。本当はUbuntu8.10が最新だけど、マウスやキーボードのAlt+Tabが効かなくなっ…

5分で始める GoogleAppEngine メモ

Google App Engine を Ubuntu8.04 上にセットアップしたときのメモ。本当に5分でできちゃうのですごく拍子抜けだった。(CentOS 5はPythonのバージョンが2.4.3なので、駄目かもしれない。) Download と インストール http://code.google.com/appengine/downlo…