初學linux的fork筆記

2021-08-31 09:20:06 字數 1206 閱讀 5611

fork函式用來建立linux程序,使用前需要標頭檔案 #include ,函式原型如下:

pid_t fork(void);

1、在父程序中該函式返回子程序的id號,在子程序中函式返回0;

2、子程序與父程序的全域性變數名稱和位址相同,但是實際對應的實體地址是不同的;

3、子程序是父程序的拷貝,雖然不是完全繼承父程序的狀態,但是只要是能夠繼承的在fork之前執行過的**也相當於子程序執行了一次,舉例如下:

在下面的**中,在判斷pid之前建立了共享記憶體空間,所以在fork之後子程序可以直接使用buffer訪問共享空間。如果是在if判斷pid之後的程式裡建立,則需要在另乙個程序**中加入獲取共享記憶體位址的**進行對映。

uint8_t* buffer

int main()

else

return 0;

}

共享記憶體涉及的標頭檔案有#include 、#include 、#include

多核系統中,程序預設在多個核心執行,根據需求可以指定程序在特定的核心上執行。使用前需要標頭檔案#include 和巨集定義 #define _gnu_source。

cpu_set_t mask;

cpu_zero(&mask);

cpu_set(1,&mask);

sched_setaffinity(0,sizeof(cpu_set_t),&mask);

函式原型如下:

int sched_setaffinity(pid_t pid, size_t cpusetsize,cpu_set_t *mask);

pid:程序pid,如果是0表示本程序;

cpusetsize:通常為sizeof(cpu_set_t);

mask:

使用taskset -p 可以檢視pid程序的affinity mask,數字的二進位制中1的位就表示該程序跑的核心。

taskset -pc 指定pid在core上執行。

標頭檔案說明:

#define _gnu_source

#include//標準輸入輸出

#include//posix標準api

#include//_lp64 和 _ilp32 的定義

#include#include#include#include#include#include

Linux的初學 筆記

1 clear 清除當前螢幕 2 pwd 檢視當前工作的絕對目錄 絕對目錄 3 ls 檢視當前目錄下的內容 ls help檢視該命令的詳細操作 4 cd 改變工作目錄 5 help基本會帶有的幫助引數,基本命令都會有 6 touch 建立檔案 後加檔名,如下列例子 7 rm 刪除檔案 後面加刪除的檔...

linux初學筆記

1 linux各個目錄資料夾的大致功能 根目錄 bin 存放必要的命令 boot 存放核心以及啟動所需的檔案 dev 存放系統配置檔案 etc 存放系統配置檔案 home 普通使用者的宿主目錄,使用者資料存放在其主目錄中 lib 存放必要的執行庫 mnt 存放臨時的對映檔案系統,通常用來掛載使用 p...

Linux初學筆記

vi的使用 vi filename 存在則開啟,不存在則建立該檔案 無論是否存在都是先在緩衝區進行操作後存到磁碟的 vi filename進入編輯介面以後,可以按esc,然後輸入?後接所要查詢的字串,即可在當前檔案中找到查詢的字串。按esc,然後輸入 後接如下字元後回車 wq儲存並退出 q強行退出v...