1. 程式人生 > >Unix環境編程(啟程)

Unix環境編程(啟程)

urn 類型 環境 ren char 兩個 parentId 自己的 unix環境編程

這裏是某鶸的Unix環境編程學習筆記

稍微清理一下做成博客也算復習復習。

希望能在實習前慢慢填完這個坑,也算是為以後的面試工作打下基礎。

編程環境是Ubuntu18.04+gcc7.3.0。

啟程篇

選擇這個主題是因為剛學完操作系統,暑假買了本書,入了Unix環境編程的坑,為了不讓買書的錢和能拿去打遊戲的時間白費,順帶完成一下每個月一篇博客的任務,

開了這個坑。

既然是啟程,那就先說說Unix基礎的進程的一些屬性和進程的創建。

上學期學(水)了《操作系統》這門課,對進程也應該有所了解,但也就知道有這麽個東西,平時也不怎麽用。

進程的概念

*進程是CPU內核進行資源調度的最小單位。

每個進程都有屬於自己的唯一進程ID,但是ID是可復用的,比如某個進程終止了,ID就成為復用的候選。

命令行為主的Unix系統知道進程ID很重要(比如強制結束一個進程,終端輸入ps顯示當前進程,然後kill 進程id就可以強制結束某個進程),進程間通信也需要這些信息。

這兩個函數返回進程ID:

pid_t getpid(void);  //返回進程的ID
pid_t getppid(void);//返回父進程的ID

返回值是進程的ID,屬於pid_t類型(其實就是int類型,用C的宏定義(define)把線程的這個ID區分開來

使用如下:

#include<pthread.h>
#include<stdio.h>
int main(int argc, char const
*argv[]) { int var; pid_t pid; var=1; //打印當前進程ID和其父進程ID printf("id=%d,parentid=%d\n",getpid(),getppid()); return 0; }

運行結果如下

技術分享圖片

有點晚了,先開個頭挖個坑,下次講講fork子進程這個玩意。

Unix環境編程(啟程)