[分享] 孤兒怨 ( unix daemon process )

看板C_and_CPP作者 (水餃)時間9年前發表 (2015/11/23 12:07), 9年前編輯推噓10(1115)
留言17則, 14人參與, 最新討論串1/1
我是谷阿莫,今天要來講一個孤兒怨的故事 某天「長得我一臉超屌的Unix星球主角A」閒閒沒事幹生了一個「我超淫亂小孩B」 並期待「我超淫亂小孩B」未來能有什麼美好的光景 但糟糕的是「我超淫亂小孩B」人如其名,超淫亂 一出生馬上跟別人亂稿生出了C 因此「我超淫亂小孩B」立刻精盡人亡了 喔你不要問我為什麼一出生馬上就能懷孕生小孩 這是主角血脈的威能你懂嗎?這可不是你們愚蠢的人類能懂der 因為B死前沒有留下任何訊息告訴A說他生了小孩 於是C就成為了孤兒,很悲憤,就跑去當孤兒怨的主角 最後孤兒C就成了小惡魔(daemon),這就是孤兒怨的由來,科科 故事講完了 直接將上面的故事翻譯成C code //主角A生了小孩B pid_t child = fork(); if (child > 0) { // 主角A期待B有所作為 wait(NULL); } else ( child == 0 ) { // B一出生後卻馬上生小孩 pid_t grandchild = fork(); if (grandchild > 0) { // 所以B精盡人亡了 exit(0); } else if (grandchild == 0) { // 於是孤兒怨 C在這裡產生了...成了daemon小惡魔 execl("/bin/ls", "ls", "-al"); } else { printf("B難產\n"); } } else { printf("A難產\n"); } 這時C就是一個daemon,其parent 會變成 init (pid=1) 這時如果C執行完會死掉,不會成為zombie process 因為殭屍和惡魔不一樣 魔王死掉就是死掉,電影就結束了,人類又獲勝了好棒棒 C結束後,系統會自動回收關掉process daemon你去查google會發現他剛好叫小惡魔,但又可以是小精靈 意思是看不見,不屬於任何人,不受擺佈這樣 有人把它翻譯成「守護進程」 (https://zh.wikipedia.org/wiki/%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B) 有需要時,可以跟惡魔用訊號(signal)溝通哦 以上是 unix 新手的淺見 請大家鞭小力一點 另外其實可以直接用daemon這function直接做 不過它的原理就是這樣達成的 科科 圖文好讀版:(code 有highlight) http://fonger.logdown.com/posts/2015/11/23/orphans-daemon-unix-programming -- 子貢問政。 子曰:「足食,足兵,民信之矣。」 子貢曰:「必不得已而去,於斯三者何先?」 曰:「去兵。」 子貢曰:「那甜度要調整嗎?」 ─你不可不知的論語奇聞軼事《顏淵第十二》 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.136.220 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1448280449.A.E9D.html ※ 編輯: Fonger (140.113.136.220), 11/23/2015 20:09:01

11/23 20:13, , 1F
...
11/23 20:13, 1F

11/23 20:16, , 2F
討厭古阿莫= =...
11/23 20:16, 2F

11/23 23:26, , 3F
有笑有推
11/23 23:26, 3F

11/24 13:52, , 4F
竟然有人模仿古阿莫的弱智化運動
11/24 13:52, 4F

11/24 17:29, , 5F
呵呵 提醒樓上請注意語氣歐
11/24 17:29, 5F

11/24 19:21, , 6F
還不錯啊~
11/24 19:21, 6F

11/24 22:29, , 7F
然有人模仿古阿莫的○○化○○
11/24 22:29, 7F

11/25 13:09, , 8F
滿好笑的啊
11/25 13:09, 8F

11/25 13:44, , 9F
Daemon 翻譯成小惡魔是錯譯, 一般沒有善惡分別
11/25 13:44, 9F

11/25 20:08, , 10F
我反而比較想知道殭屍的做法
11/25 20:08, 10F

11/25 21:22, , 11F
父母還在但不管小孩,小孩死了爸媽沒來火化就會變殭屍
11/25 21:22, 11F

11/25 21:52, , 12F
可以來段sample code嗎?
11/25 21:52, 12F

11/25 22:05, , 13F
原 PO 的 code 裡 A 的 wait 拿掉 B 就變成殭屍了
11/25 22:05, 13F

11/26 10:11, , 14F
雖然我不喜歡谷阿莫 但是還是給推拉
11/26 10:11, 14F

11/29 20:54, , 15F
Daemon一意同demon另一個則是有點像神子(神生的小孩!=神
11/29 20:54, 15F

11/30 00:20, , 16F
不過 Unix 的 daemon 一詞出處倒不是直接從這裡來的就是了
11/30 00:20, 16F
※ 編輯: Fonger (140.113.69.228), 12/01/2015 12:13:40

12/19 03:34, , 17F
有學有推
12/19 03:34, 17F
文章代碼(AID): #1MKm61wT (C_and_CPP)