最近看到許多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有連結....繼續閱讀Friday, September 15, 2006
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
我想....你自己決定吧....ㄏㄏ
其中有一段是daemonize的工作
daemonize顧名思義便是把process變成daemon
也就是脫離原本的session
自己變成session leader而不會因為session leader結束而被迫結束
舉例來說,當你從terminal執行一個server程式後
你當然可以讓terminal保持住
但是除非是debug不然這是很沒有效率的
因此我們會希望他變成一個daemon而能不受到起始他的session控制
其實說穿了daemonize只是一些fork與setsid的動作
但是有時候一直重複相同的動作是很煩的
因此也有些daemon的library出現
譬如libdaemon
至於該用wrapper library還是自己去處理daemonize
我想....你自己決定吧....ㄏㄏ
Subscribe to:
Posts (Atom)