9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學習啦 > 學習電腦 > 操作系統 > Linux教程 > linux shell exec命令詳解

linux shell exec命令詳解

時間: 佳洲1085 分享

linux shell exec命令詳解

  exec命令是linux下的一個命令,那它有什么用處呢?下面由學習啦小編為大家整理了exec命令的相關知識,希望大家喜歡!

  linux shell exec命令

  介紹

  在bash下輸入man exec,找到exec命令解釋處,可以看到有”No new process is created.”這樣的解釋,這就是說exec命令不產生新的子進程。那么exec與source的區別是什么呢?

  exec命令在執行時會把當前的shell process關閉,然后換到后面的命令繼續執行。

  用法

  1. 系統調用exec是以新的進程去代替原來的進程,但進程的PID保持不變。因此,可以這樣認為,exec系統調用并沒有創建新的進程,只是替換了原來進程上下文的內容。原進程的代碼段,數據段,堆棧段被新的進程所代替。

  一個進程主要包括以下幾個方面的內容:

  (1)一個可以執行的程序

  (2) 與進程相關聯的全部數據(包括變量,內存,緩沖區)

  (3)程序上下文(程序計數器PC,保存程序執行的位置)

  2. exec是一個函數簇,由6個函數組成,分別是以excl和execv打頭的。

  執行exec系統調用,一般都是這樣,用fork()函數新建立一個進程,然后讓進程去執行exec調用。我們知道,在fork()建立新進程之后,父進各與子進程共享代碼段,但數據空間是分開的,但父進程會把自己數據空間的內容copy到子進程中去,還有上下文也會copy到子進程中去。而為了提高效率,采用一種寫時copy的策略,即創建子進程的時候,并不copy父進程的地址空間,父子進程擁有共同的地址空間,只有當子進程需要寫入數據時(如向緩沖區寫入數據),這時候會復制地址空間,復制緩沖區到子進程中去。從而父子進程擁有獨立的地址空間。而對于fork()之后執行exec后,這種策略能夠很好的提高效率,如果一開始就copy,那么exec之后,子進程的數據會被放棄,被新的進程所代替。

  3. exec與system的區別

  (1) exec是直接用新的進程去代替原來的程序運行,運行完畢之后不回到原先的程序中去。

  (2) system是調用shell執行你的命令,system=fork+exec+waitpid,執行完畢之后,回到原先的程序中去。繼續執行下面的部分。

  總之,如果你用exec調用,首先應該fork一個新的進程,然后exec. 而system不需要你fork新進程,已經封裝好了。

3575019 主站蜘蛛池模板: 国产成人精品中文字幕| 福利视频在线一区二区| 成人看的污污超级黄网站免费 | 亚洲AV无码AV在线影院| 日韩有码中文字幕av| 国产福利社区一区二区| 成人午夜在线观看日韩| 久久国产免费观看精品3| 99久久er热在这里只有精品99| 成人嫩草研究院久久久精品| 国产午夜福利不卡在线观看| 日韩精品在线观看一二区| 成人亚洲欧美一区二区三区 | 国产精品久久久久久久专区| 91人妻无码成人精品一区91| 亚洲精品一区二区妖精| 久久99九九精品久久久久蜜桃 | 亚洲一区二区三区丝袜| 国产成人精品一区二区| 免费a级毛视频| 爽爽精品dvd蜜桃成熟时电影院| av日韩精品在线播放| 久草热久草热线频97精品| 亚洲AV成人一区国产精品| 国产精一品亚洲二区在线播放| 白嫩少妇激情无码| 国产一区二区三区色老头| 亚洲色一区二区三区四区| 国产人免费人成免费视频| 少妇被无套内谢免费看| 久久精品色妇熟妇丰满人| 亚洲国产日韩欧美一区二区三区| 免费国产一区二区不卡| 午夜大尺度福利视频一区| 国产精品v欧美精品∨日韩| 亚洲情综合五月天| AV人摸人人人澡人人超碰| 国产精品伦人视频免费看| 最新精品露脸国产在线| 亚洲区精品区日韩区综合区| 成人啪啪高潮不断观看|