Unix環境編程(啟程)
阿新 • • 發佈:2018-09-20
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環境編程(啟程)