我正在實現一個在用戶空間中調用的系統調用,可以用foo來說。 系統調用訪問foo的task_struct(通過全局指針當前),打印它的名稱和pid,然後繼續到foo的父進程,foo的父進程父進程等。打印所有名稱和pid直到init進程。Linux中的進程id是否爲負數?
pid = 1保留給init,pid = 0保留給swapper。
根據swapper的task_struct,它的父進程本身。
Swapper(或sched)總是有pid = 0並始終是init的父進程?
是否所有pid都是非負數?我可以做出這樣的假設嗎?
謝謝我會立即檢查pid_t是如何定義的。 – Plazo 2012-03-06 13:09:25
我認爲它是簽名的,'fork'返回'pid_t',它可以是'-1'。我想我還記得在一些標題中看到它。需要檢查。 OFc,這並不意味着進程ID可以是負數 – 2012-03-06 13:12:46
它已簽名,只是看着它。但它是如此以便返回錯誤:D – 2012-03-06 13:18:23