一起talk C栗子吧(第八十一回:C語言執行個體--進程停止)

來源:互聯網
上載者:User

標籤:表示   ack   結構   live   post   number   track   params   系統調用   

各位看官們,大家好,上一回中咱們說的是進程相互排斥的範例,這一回咱們說的範例是:進程停止。閑話休提,言歸正轉。

讓我們一起talk C栗子吧!

我們在前面的章回中介紹了怎樣建立進程,只是沒有介紹停止進程,已經有部分看官在提問了。怎樣停止進程呢?看官莫急,今天咱們就一起來說說怎樣停止進程。

停止進程的方法有以下幾種

  • 進程正常結束時停止;
  • 使用exit函數停止進程。
  • 強制停止進程;
  • 進程執行過程中錯誤發生後停止進程。

接下來,我們分別介紹這幾咱停止的方法:

進程正常結束時停止

我們寫的程式中都有一個main函數,在main函數中使用return語句給系統返回一個數值。這時候擁有main函數的進程就會停止。

該方法是最常見的方法,可能是我們見多了,反而認為非常尋常。

俗話說:物以稀為貴說是就是這個道理。

以下是一個簡單的代碼結構:

int main(){     //do something     return 0;        //通過返回停止進程 }
使用exit函數停止進程

在程式中直接調用該函數就能夠,傳遞給它的參數一般是1。表示程式發生異常而停止。比方,我們在函數中經常會推斷指標是否為空白,假設為空白則停止執行程式。

if(NULL == p)     exit(1);   //通過exit函數停止進程
強制停止進程

在終端中使用kill命令發送一個訊號給進程。比如:

kill 34567

上面的範例表示給PID為34567的進程發送一個TERM訊號,該進程收到訊號後就會停止。

當然了。能夠使用kill命令發送其他訊號給進程,以便 讓進程停止。我們僅僅是在範例中使用了預設的訊號。

此外。Linux提供了kill系統調用,當我們想在代碼中強制停止某個進程時,能夠使用它發送停止訊號給某個進程。進而強制停止進程。比如:

kill(34567,SIGKILL)

上面的範例表示停止PID為34567的進程。

使用該方法時須要擁有管理員權限。否則沒有許可權給進程發訊號。

進程執行過程中錯誤發生後停止進程

當在進程執行的過程中發生嚴重錯誤時,系統會停止該進程。該方法是系統使用的,我們不能使用。我們要做的就是檢查各種可能的異常情況。避免嚴重錯誤的發生,比方記憶體流失。

看官們,進程停止的方法是非經常見並且easy理解,所以我們就不寫代碼了。

各位看官,關於進程停止的範例咱們就講到這裡。欲知後面還有什麼範例,且聽下回分解 。

一起talk C栗子吧(第八十一回:C語言執行個體--進程停止)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.