原创 shell腳本之工具

        在學習了shell腳本的基本語法,命令,符號之後,接下來要看的就是shell腳本使用的所有工具了。        在shell腳本中,工具的使用簡化了所要編寫的代碼。接下來就介紹幾個shell下經常使用的工具。    1、

原创 進程間通信之管道

     在談到進程的概念時,大多數人的第一反應可能就是PCB(就是進程控制塊), 當然這是對的,因爲PCB是進程存在的唯一標示,但與此同時我們還要想到虛擬地址空間、頁表、物理地址以及三者之間的映射關係。             在學習了

原创 shell腳本

        Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。        Shell 是指一種應用程序,一種和內核溝通的外殼應用程序的統稱。這個應用程序

原创 進程的創建、等待以及退出

           學習了進程的進步概念之後,接下來我們就來學習一下進程的創建、等待以及終止等。1、進程的創建       在Linux中,fork()函數是非常重要的函數,它從已存在的進程中再創建一個新進程。新進程爲子進程,而原進程爲

原创 shell之正則表達式

        學習過編程語言的應該都聽說過正則表達式這個詞,那麼正則表達式到底是什麼呢?接下來就讓我們來了解一下。       1、正則表達式簡介         正則表達式是用於描述一組字符串特徵的模式,用來匹配特定的字符串。通過特殊

原创 單鏈表的實現

      在上篇我簡單實現了靜態順序表和動態順序表,靜態來實現一下另一個數據結構      鏈表是一種線性表,但是並不是順序存儲,而是每個節點裏面存儲着下一個節點的指針,把存儲數據元素的數據串聯起來。每個節點都是一個結構體,每個結構體裏

原创 進程間關係與守護進程

       在我們學習完進程和線程之後,我們知道進程與進程之間是相互獨立的,而線程與線程之間是有一定的聯繫的。那麼進程與進程之間就真的沒有關係嗎?接下來就來學習一下進程間關係以及一個新的名詞守護進程。       在學習進程間關係之前,

原创 static、consts使用場景和條件

  在生活中,有些值是不發生變化的。比如一個人的身份證號碼,血型,性別等等。  在計算機中要描述這些信息就需要有一個不變的量來表示。這種值我們就叫做常量。 在C語言中   1、常量的分類:    字面常量          1,3.14.

原创 進程信號

        在學習進程間通信時,我們曾經學過一種方式叫信號量,它就相當於一個計數器,而當時我還在想信號量與信號有什麼關係呢?其實信號量與信號是兩件截然不同的事物。接下來我們就來學習一下信號,然後就會發現信號和信號量到底有什麼不同? 

原创 C語言之靜態,動態順序表的實現

      在學習了C語言之後,我們先來了解一下簡單的數據結構,順序表和鏈表。      順序表和鏈表都屬於線性數據結構。順序表的底層相當於一個數組,因爲它的空間是一段地址連續的存儲單元;鏈表的底層不需要所有的空間都連續,只要通過指針就可

原创 進程替換以及簡單實現簡易shell

       在前面學習了進程的創建、等待、退出之後,我們知道了在有些時候子進程和父進程會共享地址空間,比如在Vfork()函數調用的時候,所以,今天我們來學習一下進程替換和一個簡單的小程序。1、進程程序替換  (1)替換原理     

原创 進程間通信之信號量

             在學習了進程間通信的前幾種方式管道,消息隊列、共享內存之後,進程間通信的另一種方式——信號量。            在學習信號量之前,需要先理解幾個名詞。            互斥:由於各進程要求共享資源,而

原创 網絡協議初識、傳輸流程

    在學習網絡之前,我們先來了解一下計算機網絡的背景。1、計算機網絡背景     首先我們要提一個問題,網絡是什麼?接下來,我們就來談談網絡。     我們知道,我們的電腦硬件之間都是由線連接的,而正是由這些線和硬件軟件構成電腦,現在

原创 死鎖、讀寫者模型實現

        在學習了線程之後,在上一博客中我模擬實現了生產者消費者模型,再模擬實現生產者消費者模型的時候我們都知道,若不加制約,可能生產者還沒生產完消費者就來消費了,所以我們就需要互斥量和條件變量來進行制約。       而如何制約呢

原创 進程概念之孤兒與殭屍

      在瞭解了進程是什麼後,接下來我們來了解一下進程的其他相關。      進程可以使用命令來進行查看  進程的信息可以通過/proc系統文件夾查看;(如要查看PID爲1 的進程信息,需要查看/proc/1這個文件夾)大多數進程信息