Linux學習筆記(一)

2021-07-23 15:06:15 字數 1102 閱讀 1350

本章學習內容:

1.程式執行是main函式如何被呼叫?

2.命令列引數是如何傳遞給新程式?

3.典型的儲存空間布局是什麼樣式?

4.如何分配另外的儲存空間?

5.程序如何使用環境變數?

6.程序的各種不同終止方式。

7.longjmp和setjmp函式以及它們與棧的互動作用。

c程式總是從main函式開始執行。

在當核心執行c程式時,在呼叫main前先呼叫乙個特殊的啟動歷程c編譯器呼叫連線編輯器,而連線編輯器通過可執行檔案將此啟動歷程指定為程式的起始位址。啟動歷程從核心取得命令列引數和環境變數值,然後為按照上述方式呼叫main函式做準備。

iso c 說明了3個用於儲存空間動態分配的函式:

1.malloc 分配指定位元組數的儲存區

2.calloc 為指定數量指定長度的物件分配儲存空間。

3.realloc 增加或減少以前分配區的長度。

每個程序都有乙個非負整型表示的唯一程序id。

系統中有一些專用程序。id為0的程序通常是排程程序,常常被稱為交換程序。該程序是核心的一部分,它並不執行任何磁碟上的程式,因此也被稱為系統程序。程序id為1通常是init程序,此程序負責在自舉核心後啟動乙個unix系統。init通常讀取與系統有關的初始化檔案,並將系統引導到乙個狀態。init程序決不會終止。

乙個現有的程序可以呼叫fork函式建立乙個新程序。

c

#include

pid_t fork(void);

// 返回值:子執行緒返回0,父執行緒返回子執行緒id;錯誤返回-1

fork建立的新程序被稱為子程序。子程序返回id給父程序,因為乙個程序的子程序可以是多個,並且沒有乙個函式可以獲得子程序的程序id。fork使子程序得到返回值0的理由:乙個程序只有乙個父程序,所以子程序總是可以呼叫getppid獲得其父程序的程序id。

Linux學習筆記(一)

一 基礎知識 整個unix體系結構包括這麼幾個部分 1 登入 系統的口令檔案存放在 etc passwd下面,每行是一條記錄。每條記錄以 分隔包含7個字段 但是現在所有的系統都將這些資訊放在其他檔案 which file linux預設是bourne again shell bash 2 檔案和目錄...

linux學習筆記一

gnu general public license 奇數發展中版本,偶數穩定版本 linux的兩種操作方式 圖形介面 x windows system 僅是linux上的一套軟體 文字介面 command line 網路伺服器 www,mail server,file server,ftp ser...

Linux學習筆記(一)

一 磁碟分割槽 第一步 檔案系統型別 ext3 掛載點 固定大小 10000mb 第二步 檔案系統型別 ext3 掛載點 boot 強制為主分割槽 100mb 第三步 檔案系統型別 swap 固定大小 1000mb 第四步 檔案系統型別 ext3 掛載點 home 固定大小 5000mb 二 圖形介...