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

yumで最新版のソースファイルをダウンロードする

# yum install yum-utils # yum search yum | grep 2.6.1-0 yum.noarch 2.6.1-0.fc5 updates ←リポジトリはupdates # yumdownloader --enablerepo=updates-source --source yum

メッセージ

IPC

System V IPCの一つ。取り扱うデータにタグを指定でき、受信する際に指定したタグを持つデータを取り出せる。ただし利用されている例はあまり無いらしい。 メッセージキューはカーネル内部に保存したメッセージのリンクトリストである。単にキュートも呼ばれ…

標準定義シンボルの確認

gcc

gcc -v -E - gcc -dM -E - gcc 4)

Secure Programming for Linux and Unix HOWTO

少し古いが一読しておきたいhttp://www.linux.or.jp/JF/JFdocs/Secure-Programs-HOWTO/index.html

creeping featurism

「忍び寄る機能主義」と訳すらしい

NetBSDカーネルソースコードスタイルガイド

http://www.ascii.co.jp/pb/BSDmag/200004/style.html

FreeBSDソースコード

http://www.jp.freebsd.org/cgi/cvsweb.cgi/

GPG 設定手順

GPG

参考サイト http://www.palmtb.net/index.php?GPG%20%C0%DF%C4%EA%BC%EA%BD%E7

テスト用の雛形

//!gcc -g -o my main.c -lpthread #include #include typedef struct { char str[256]; } DEF_T_CHAR; DEF_T_CHAR stchar[2] = { {"thread1"}, {"thread2"}, }; void *thread_func(void *param) { char *p; p = (char *) param; printf("%s() is called... …

スレッドアンセーフな関数

下記URLに一覧がある。 http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_09.html 以下の関数も出力用の引数にNULLが渡されたらスレッドアンセーフ。 ctermid() tmpnam() wcrtomb() wcstrombs()

セキュアコンパイルオプション(gcc4)

gcc -g -O2 -D_FORTIFY_SOURCE=2 -fstack-protector -Wall -Wextra -Wformat=2 -Wstrict-aliasing=2 -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wfloat-equal -Wpointer-arith -Wswitch-enum

manページの文字化け対処

/etc/man.configファイルを以下のように変更する。 PAGER /usr/bin/less -iRs ↓ PAGER /usr/bin/lv

Linuxにおけるスレッド

スレッド Linuxカーネルのスレッドは、一種のプロセスとして実装されている。LinuxではPOSIXプロセスモデルに対応するため、スレッドグループが導入されている。スレッドグループはアドレス空間とシグナルハンドラ等を共有するプロセス(軽量プロセス)の集ま…

スレッド

従来型のプロセスでは、各プロセスに1つの制御スレッドとプログラムカウンタがある。モダンなOSでは、プロセス内に複数の制御スレッドが存在することをサポートしているものがあり、それらの制御スレッドは通常、単にスレッドという。場合によっては軽量プ…

構造体のゼロクリア

memsetを使わずとも、配列と同様に以下のように初期値を指定すれば、コンパイラが適切に判断してゼロクリアしてくれるらしい。 struct str_t s = {0}; gccのinfoを探ったけれど該当箇所が見つからなかった。根拠が見つけられないので今ひとつ納得がいかない…

プログラマはクリスマスとハロウィーンを区別できない

Octal(8進数)の31がdecimal(10進数)の25に相当することからのジョークらしい。つまり、OCT 31 = DEC 25。

文字コードの変換

lvを使用する。 例 $ lv -Oej file.txt.utf8 > file.txt.euc

リンカオプション

gcc

Wl,option の形式でリンカにオプションを与えられる。リンクマップを出力したい場合は以下のように指定する。 gcc -Wall -Wl,-M -o my test.c

左辺値及び右辺値

C

x = y; シンボルxはこの場合、xのアドレスであり、これは左辺値と呼ばれる(必ずしも左辺に現れるとは限らない)。一方、シンボルyはアドレスの内容であり、右辺値と呼ばれる。左辺値はコンパイル時に判別することが出来るが、右辺値は実行時にならなければ確…