programming

syslog

syslog.confをはじめていじってみた。最初の作品。 /etc/syslog.conf *.info /var/log/0317Log priorityがLOG_INFO以上(=LOG_DEBUG以外)を、/var/log/0317Log に出力するという設定ファイル左側の、*.info 部分を セレクターフィールド 右側をアクション…

Makefile

/cygdrive/c/Users/play/0315/Makefile all : make -C ./sub /cygdrive/c/Users/play/0315/sub/Makefile all: echo `pwd` echo $(PWD) /cygdrive/c/Users/play/0315 ディレクトリにおいて、 $ make -s /cygdrive/c/Users/play/0315/sub/ /cygdrive/c/Users/p…

Makefile

make all って打ったときに、まずは、make clean して、ビルドしなおす、 のように、「あれをして、これをしてから、これをする」みたいにMakefileを書きたいとき。たとえば、こんな風にMakefileを書くと、 all: 1 2 3 test.c gcc -o test test.c 1: echo '1…

ライブラリの依存関係

main.cがlibtest1.aに依存し、 libtest1.aがlibtest2.aに依存している場合のビルドは、 gcc main.c -ltest1 -ltest2 依存先を後ろにつけます。 では、ライブラリが双方向(相互)に依存している場合はどうするのか?これまた、 gcc main.c -ltest1 -ltest2 …

extern "C"

前回は、C++ソースで定義された関数を Cソース内でコールする場合に起こる問題について書きました。そのキーワードが、「マングリング」でした。前回:http://d.hatena.ne.jp/debian36/20080226 では、その問題を回避する方法、すなわちマングリングを避ける…

マングリング

今日の午後は、ずっとC++(g++)と闘っていました。。。これまで C言語でコーディングされていたシステムの一部が、C++に変更されたたため、自分が担当する部分もそれに対応する必要がありました。 ※ プロジェクト進行中に言語変更なんて自由やなぁ・・・(^^; …

SystemV メッセージキュー

前回に続き、メッセージキューを用いたIPCプログラミング。コマンドライン引数で受けた文字列をキューに追加するプログラムと、 それを取り出すプログラム。2つの独立したプログラム(プロセス)が、ひとつのメッセージキューを通して、コミュニケーションし…

POSIX Semaphore

今度は、POSIX仕様のセマフォ。これも、Cygwinでやろうとしたんだけれど、POSIXリアルタイムライブラリが見つからなかったため、断念。で、でびあん♪ defs.h セマフォ名(openするときの素(もと)となるもの)の定義のみ。 はじめ、これを/tmp/sem123 とし…

Cygwinでメッセージキュー使用

今日は、でびあんはお休み。 その代わりに、Cygwinで IPCプログラミングを試みる。メッセージをSendするプログラムと メッセージをRecvするプログラムの簡単なもの。 def.h メッセージキューキー取得のための、ftokに取得するパスの定義、 メッセージキュー…

POSIXメッセージキュー

いまは、IPC(プロセス間通信)にはまってます。でも、まだひとつも動かせていません…とりあえず今日の成果。コンパイルまでは通るけど、 実行すると、mq_receiveのところで、errno:90( ELOOP ) というエラーがでて、メッセージを取得できていない模様… #incl…

符号付き数値

上の実験コードでは、intを char 配列として見ています。32バイトのビット配列をひとつの 32ビット数値 としてみるか、4つの 8ビット数値 といてみるかという、要は、「見方」を変えたものです。 では、ついでに、もうひとつ「見方」を変えてみます。 #inclu…

バイトオーダ

今まで、LSBは、Least Significant Byteの略だと思ってました…なんか、大文字の B を見るとついつい、ビットではなくバイトと思ってしまって。正しくは、Least Significant Bit の略ですね。 もっとも、意味が薄いビットつまり、最下位ビットのことですね。0…