はじめに
Linux上で動作するサンプルプログラムを掲載しています。バグやおかしな動きをする場合は問い合わせまで連絡頂けるとうれしいです。
サンプルプログラムの使用・改良は自由ですが、自己責任でお願いします。掲載されているサンプルプログラムは以下の環境で動作確認をしています。(カーネル2.4以前ではスレッドの実装が異なる為、予期した動きをしない可能性があります。)
サンプルプログラムの使用・改良は自由ですが、自己責任でお願いします。掲載されているサンプルプログラムは以下の環境で動作確認をしています。(カーネル2.4以前ではスレッドの実装が異なる為、予期した動きをしない可能性があります。)
openSUSE 11 | Fedora 10 | |
カーネル | 2.6.25.5 | 2.6.27.5 |
glibc | 2.8-14.1 | 2.9-2 |
gcc | 4.3-39.1 | 4.3.2 |
サンプルプログラム一覧
(シグナルとスレッド関連)
シグナルとタイマー1 | setitimerを使った周期タイマー |
シグナルとタイマー2 | timer_createを使ったPOSIXタイマー |
リアルタイムシグナル1 | 標準シグナルとリアルタイムシグナルについての検証1(標準シグナル) |
リアルタイムシグナル2 | 標準シグナルとリアルタイムシグナルについての検証2(RTシグナル) |
シグナルとスレッド | シグナルを特定のスレッドに通知する |
スレッドの排他制御 | pthread_mutexを使用して排他制御の有無を動作検証する |
デッドロック | 二重ロックによるデッドロックと回避方法 |
スレッドの同期1 | pthread_condによるスレッド間の通知と同期 |
スレッドの同期2 | pthread_cond_broadcastによる複数スレッドの同期 |
スレッド間の非同期通信 | シグナルを使用したスレッド間の通信(sigqueue,sigwaitinfoによる値渡し) |
(ソケット関連)
UDPクライアントプログラム | UDPでパケットを送信する簡単なサンプルプログラム |
UDPサーバープログラム1 | UDPでパケットを受信する簡単なサンプルプログラム |
UDPサーバープログラム2 | UDPパケット受信プログラムの拡張。selectによる複数ソケットの切り替え。 |
プロミスキャスモード | プロミスキャスモードを使った簡単なパケットキャプチャプログラム |
RAWソケット | RAWソケットを使った簡単なパケットキャプチャプログラム |
pingもどき | RAWソケットでICMPの送受信を行うpingもどきプログラム |
(その他)
zlibを使ったサンプル | zlibを使って圧縮ファイルの読み書きを行う |
cpuidを使ったサンプル | cpuid命令を使ってCPUからCPU情報を取得する。 |
Linux,POSIX,BSD,UNIX,gcc,gdb,コマンド,プログラミング,サーバー,ネットワーク,ソースコード,デバッグ,パケットキャプチャ