home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

日記/2006/09/10/久しぶりにUNIX-CとかSharedObjectとかexternとか

日記/2006/09/10/久しぶりにUNIX-CとかSharedObjectとかexternとか

日記 / 2006 / 09 / 10 / 久しぶりにUNIX-CとかSharedObjectとかexternとか
id: 304 所有者: msakamoto-sf    作成日: 2006-09-10 11:17:56
カテゴリ: C言語 UNIX 

実に久しぶりに、UNIX-Cで .o への外部参照や .so 内のファイルへの参照時のextern周りを弄ることになった。

で。
綺麗サッパリ忘却してる自分がいる。

・・・あれほど入れ込んでいたのは、一体・・・。い、いや、そもそも大学3,4年次に集中して頭にたたき込んだり実験してて、それからはや3年が過ぎようとしているのだ・・・。無理もない。使ってないのだから。っつーか、実際問題「.so内からexternして取り込んでいる変数は、プロセス間で共有されるか」という点については以前から気にはなっていたけど実験していなかった。

というわけで、単なる復習用の初級レベルサンプル以外の何者でも無いんだけど一応UP。
添付ファイル/060910231159_c0s.tar.gz

添付ファイル中の"c01", "c02"については、普通に「オブジェクトファイルでリンク("c01")」「共有オブジェクト(.so)としてリンク("c02")」の実験というか復習。

最後に、.so内の変数はプロセス毎に共有されるのか?というわけで、c02のmainを複数同時に動かせるよう、sleepとループ入れただけのが"c03"。
結果として、変数は共有されず、プロセス毎にカウントアップされていった。

ついでにMakefileを書くのにちろちろWeb調べてたら、
http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/make-intro/suffix.html
に、

SRC=$(wildcard *.c)
OBJ=$(SRC:.c=.o)

と書けそうなサンプルが。というわけで、"c01"のMakeはそれ使ってます。("c02", "c03"になっちゃうと、面倒くさいのでターゲット毎にMakefile分けたので使ってない・・・。)

以上。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2009-04-05 11:23:31
md5:29fd7332d7275722ca02c276e6f6446d
sha1:ac6f691bb805f63dbf5884c0d94318651b880fc4
コメント
コメントを投稿するにはログインして下さい。