日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简述进程的启动、终止的方式以及如何进行进程的查看。

發布時間:2025/6/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简述进程的启动、终止的方式以及如何进行进程的查看。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡述進程的啟動、終止的方式以及如何進行進程的查看。

參考答案:

(1)在Linux中啟動一個進程有手工啟動和調度啟動兩種方式:

(1)手工啟動

用戶在輸入端發出命令,直接啟動一個進程的啟動方式。可以分為:

①前臺啟動:直接在SHELL中輸入命令進行啟動。

②后臺啟動:啟動一個目前并不緊急的進程,如打印進程。

(2)調度啟動

系統管理員根據系統資源和進程占用資源的情況,事先進行調度安排,指定任務運行的時間和場合,到時候系統會自動完成該任務。

(2)進程終止的5種方式

  • 正常退出?
    • 從main函數返回–語言級別的返回操作
    • 調用exit–C庫函數
    • 調用_exit–系統調用
  • 異常退出?
    • 調用abort 產生SIGAORT信號
    • 由信號終止 ctrl+c /SIGINT

exit和_exit的區別

  • 區別1:清空緩沖區的操作
int main(void) {printf("hello itcast");//exit(0);//不需要程序員手工刷新緩沖區fflush(stdout);//不加這句話--不會刷新緩沖區--不會打印_exit(0); }
  • 區別2:exit會調用終止處理程序?
    關于終止處理程序:
  • atexit可以注冊終止處理程序,ANSI C規定最多可以注冊32個終止處理程序。
  • 終止處理程序的調用與注冊次序相反
  • 函數原型:int atexit(void (*function)(void));
  • 查看幫助文檔:man 2 atexit
#include <sys/types.h> #include <unistd.h>#include <stdlib.h> #include <stdio.h> #include <string.h>#include <signal.h> #include <errno.h> #include <signal.h>exit(0)是c庫函數 = _exit(0); //系統調用 //\n能啟動刷新緩沖區的作用 //void bye1(void) {printf("bye1...do\n"); }void bye2(void) {printf("bye2...do\n"); }int main() {atexit(bye1);atexit(bye2);printf("hello.... fddddddddd1111");fflush(stdout);//exit(0)是c庫函數 =======其他操作。。。。在調用_exit_exit(0); //系統調用--不會調用終止處理程序 }int main02() {atexit(bye1);atexit(bye2);printf("hello.... fddddddddd1111\n");//abort();//exit(0); //是c庫函數 =======調用終止處理程序。。。。在調用_exitreturn 0;//會調用終止處理程序}
  • 總結exit與_exit區別?
    1)_exit是一個系統調用,exit是一個c庫函數?
    2)exit會執行刷新I/O緩存?
    3)exit會執行調用終止處理程序

return和exit的區別

  • exit用于結束正在運行的整個程序,它將參數返回給OS,把控制權交給操作系統;而return 是退出當前函數,返回函數值,把控制權交給調用函數。
  • exit是系統調用級別,它表示一個進程的結束;而return 是語言級別的,它表示調用堆棧的返回。
  • 在main函數結束時,會隱式地調用exit函數,所以一般程序執行到main()結尾時,則結束主進程。exit將刪除進程使用的內存空間,同時把錯誤信息返回給父進程。
  • void exit(int status); 一般status為0,表示正常退出,非0表示非正常退出。
  • 區別就是:

    1)exit用于在程序運行的過程中隨時結束程序,其參數是返回給OS的。也可以這么講:exit函數是退出應用程序,并將應用程序的一個狀態返回給OS,這個狀態標識了應用程序的一些運行信息。

    main函數結束時也會隱式地調用exit函數,exit函數運行時首先會執行由atexit()函數登記的函數,然后會做一些自身的清理工作,同時刷新所有輸出流、關閉所有打開的流并且關閉通過標準I/O函數tmpfile()創建的臨時文件。

    exit是系統調用級別的,它表示了一個進程的結束,它將刪除進程使用的內存空間,同時把錯誤信息返回父進程。通常情況:exit(0)表示程序正常, exit(1)和exit(-1)表示程序異常退出,exit(2)表示系統找不到指定的文件。在整個程序中,只要調用exit就結束。

    2)return是語言級別的,它表示了調用堆棧的返回;return是返回函數值并退出函數,通常0為正常退出,非0為非正常退出,請注意,如果是在主函數main, 自然也就結束當前進程了(也就是說,在main()里面,你可以用return n,也能夠直接用exit(n)來做),如果不是在main函數中,那就是退回上一層調用。在多個進程時,如果有時要檢測上個進程是否正常退出,就要用到上個進程的返回值。

    (4)經常使用的進程調度命令為:at、batch、crontab。

    總結

    以上是生活随笔為你收集整理的简述进程的启动、终止的方式以及如何进行进程的查看。的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。