本章開始時(shí)演示了Hello World程序,其實(shí)已經(jīng)創(chuàng)建了新的進(jìn)程,通過Bash
或者zsh
這些Shell很容易創(chuàng)建新的進(jìn)程,但Shell本身是怎么實(shí)現(xiàn)的呢?我們又能不能用Go實(shí)現(xiàn)類似Shell的功能呢?
原來這一切都是操作系統(tǒng)給我們做好的,然后暴露了使用的API接口,這就是系統(tǒng)調(diào)用。Linux或者其他Unix-like系統(tǒng)都提供了fork()
和exec()
等接口,Bash或者我們寫的程序都可以通過調(diào)用這些接口來操作進(jìn)程。
而Go已經(jīng)封裝了與進(jìn)程相關(guān)的接口,主要在os/exec
這個(gè)Package中。通過使用封裝好的接口,我們很容易就可以在自己的項(xiàng)目中調(diào)用其他進(jìn)程了。
這一章已經(jīng)介紹了這么多概念,馬上會(huì)有實(shí)踐環(huán)節(jié),用Go實(shí)現(xiàn)多種方式來來創(chuàng)建和運(yùn)行外部進(jìn)程。