C/C+– category –
-
Windows-Linux間をTCPで通信する
TCPを使ってWindowsとLinux間で通信してみる。具体的にはWindows上にVirtualboxで仮想マシンを作成しHost-Only-Adapter経由で通信する。 構成 サーバ : Linux CentOS 6, X86_64(64bit) on Virtualboxクライアント : Windows7 (32bit) プログラム作... -
Qt5で始めるGUIプログラミング
Qt5を使ってGUIプログラミングに挑戦してみる。まずはウィンドウを出すだけ。 Linuxサーバでアプリケーションを作成&実行し、表示はWindowsで行うスタイル。 実行環境 ホスト側 Windows7 32bitXming 6.9.0.31Teraterm 4.9.2 サーバ側(実行側) CentOS 6, x... -
シグナル受信をepollで監視
Linuxのsignalfdを使ってシグナルをepollで監視する。 signalfd.c #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <string.h> #include <unistd.h> #include <sys/socket.h> #include <sys/epoll.h> #include... -
TAILQでリスト管理
TAILQを使ってリストを実現する。詳細はMan page of QUEUE参照。 tail.c #include <stdio.h> #include <stdlib.h> #include <sys/queue.h> typedef struct memEntry { TAILQ_ENTRY(memEntry) entry; int32_t size; void* ptr; } memEntry_t; type... -
ソケットプログラミング(UDP)
LinuxでUDPによる通信を行うサンプルプログラム。 この手の例はGoogle先生で検索すれば沢山でてくるけど、システムコールのリターン値を見てなかったり、openに対応するcloseをしていない例が多いことに気付くと思う。 もちろん動かすことだけ考えたら気に... -
Linuxでシグナル捕捉
使い方をすぐに忘れるsigactionでシグナルを捕捉する方法。 #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <signal.h> #include <errno.h> #include <string.h> #include <unistd.h> static volatile sig_at... -
X11で始めるGUIプログラミング
いまどきX11でプログラム書くことがあるかは知らないけど、凄い昔にLinuxでGUIのプログラミングにトライしたときのサンプルコードを見つけたので掲載。現代はQtとか使うのかな。 事前準備 $ sudo yum -y install libX11* x11.c #include <X11/Xlib.h> #... -
ソースコードと完全に同じ文字列を出力する
実用性はゼロですが、お遊び感覚でCとperlでやってみた。 Perlの場合 quine.pl $_=q{ q[ * * * * * * * * * * * * * * Hello Quine * * * * * * * * * * ]; print"\$_=q{$_};eval\n"};eval 実行結果 $ perl quine.pl $_=q{ q[ * * * * * * * * * * * * * *... -
C言語で簡易関数トレース
シンプルなprintf()デバッグをコンパイルスイッチでON/OFFできるように実装する。 trace.c #include <stdio.h> #ifdef DEBUG_ENABLE #define ENTRANCE(fmt, ...) \ printf("%s:%u:===> IN %s(" fmt ")\n", __FILE__, __LINE__, __func__, ##__VA_ARGS__... -
コードの処理速度計測にgprofを試してみた
GNUのプロファイラ gprofでコードの処理速度計測を試してみた。関数単位、LINE(行)単位での実行速度の計測ができる模様。 今回は関数単位でお試し。 使い方は"-pg"のオプションを付与してコンパイルしたバイナリを実行後にgprofコマンドをかませばOK。 gpr...