Friday, September 15, 2006

Dynamic linking library in Linux

最近看到許多linux的新一點的project許多都使用dynamic linking來架構其C程式,其中dlopen這個系列雖然是很lightweight但是卻十分好用,幾年前看到dlopen的使用便覺得很酷,因此 寫一個粗淺的文章來談談dlopen library。

不了解dynamic linking library嗎?我想一個例子便是Microsoft的COM架構,這類的方式有許多好處,首先是對於軟體設計人員可以更自由的與其他人開發的 library獨立開發。這裡要知道的是他確實是dynamic的來連結,一般的library的linking多是在linker的階段完成,也就是說 在你執行ld的時候(或是由gcc呼叫ld)便將library與執行檔的symbol link完成。因此就算你是用shared library依然在link stage後便會與特定的library有連結....繼續閱讀

Tuesday, September 12, 2006

Daemon

最近看了OpenSER的code
其中有一段是daemonize的工作
daemonize顧名思義便是把process變成daemon
也就是脫離原本的session
自己變成session leader而不會因為session leader結束而被迫結束
舉例來說,當你從terminal執行一個server程式後
你當然可以讓terminal保持住
但是除非是debug不然這是很沒有效率的
因此我們會希望他變成一個daemon而能不受到起始他的session控制

其實說穿了daemonize只是一些fork與setsid的動作
但是有時候一直重複相同的動作是很煩的
因此也有些daemon的library出現
譬如libdaemon
至於該用wrapper library還是自己去處理daemonize
我想....你自己決定吧....ㄏㄏ