原创 C語言實現繼承與多態

在前面博客已經詳細講過C++中繼承與多態的概念,在這裏則只使用C語言的語法來實現繼承與多態。 繼承: 即派生類中擁有基類的成員變量和成員函數,所以C語言實現如下: #include <stdio.h> typedef void(*Func

原创 宏總結

宏即代碼替換,它可以替換數值字面值常量,字符串等非整型以及函數替換。如: #define MAX 1024 #define STRING "stringstring" #define SWAP(a,b) {a=a+b;b=a-b;a

原创 多線程編程-線程控制與屬性(結合與分離)

進程在各自獨立的地址空間中運行,進程之間共享數據需要用mmap或者進程間通信機制,而當需要在一個進程中同時執行多個控制流程併發執行多個任務時,多線程即爲出現。 在linux下,一個進程中的多線程都在進程的地址空間中運行,它的控制流程可以

原创 Linux下信號--阻塞信號

這篇博客http://blog.csdn.net/l_xrui/article/details/72885978講了信號的基本概念與產生方式。 瞭解以下三種概念: 信號遞達(Delivery):實際執行信號的處理動作(三種); 信號未決(

原创 死鎖及避免死鎖的銀行家算法

Linux下: 互斥鎖是保護臨界資源被線程間(或進程間)互斥的訪問臨界資源,當一個線程得到鎖不釋放時另一個線程申請時必須等待,由此可以得到概念: 死鎖:(兩種情況) (1)同一個線程先後兩次調用lock,在第二次調用時,由於鎖已經被自己佔

原创 進程間通信-管道與管道容量

匿名管道是一種最基本的IPC機制,由pipe函數創建:#include <unistd.h> int pipe(int filedes[2]); 參數:輸出型參數,調用pipe函數時在內核中開闢一塊緩衝區(稱爲管道文件)用於通信,它有一個

原创 進程間通信-共享內存

共享內存:使得多個進程可以訪問同一塊內存空間,是最快的可用IPC通信形式。是針對其他通信機制運行效率較低而設計的,往往與其它通信機制,如信號量結合使用,來達到進程間的同步及互斥。 機制如下: 特點: 1.內存共享是進程間通信速度最快的:

原创 子進程的異步等待方式

SIGCHLD:子進程在終止退出時會給父進程發SIGCHLD信號,該信號的默認處理動作是忽略。 驗證如下:創建一個子進程,自定義信號SIGCHLD的捕捉函數,若子進程退出並調用了此信號捕捉函數,則驗證成功。 #include <stdio

原创 函數的可變參數列表

可變參數的產生:首先看一段簡單求平均數代碼: int average(int num,int v1,int v2,int v3,int v4) { return (v1+v2+v3+v4)/num; } #include <stdio

原创 信號的捕捉

信號的捕捉在Linux下機制:如圖 由此可知此機制下發生了四次的模式切換:用戶態--->內核態、內核態--->用戶態、用戶態--->內核態、內核態--->用戶態,從中也可以看出進程處理信號的時機是從內核態切回到用戶態時候,若這時有信號可

原创 Linux下信號與Core Dump(gdb調試)

信號:當一個進程產生異常、中斷等時,操作系統則給進程發送一個信號,即向進程PCB中寫入一個信息(此處即修改一個比特位(位圖實現),表示進程是否收到該信號),當進程確認收到該信號則會在恰當的時間去執行其對應的相關處理動作。 三種處理動作:

原创 Linux中shell的模擬實現

shell:Linux下,shell爲操作系統的外殼,爲用戶提供了使用操作系統的接口,它是命令語言、命令解釋程序及程序設計語言的統稱。 主要功能:(1)命令解釋器;(2)作爲一種高級程序設計語言可以編寫出代碼簡潔、功能強大的程序。 在這裏

原创 可重入函數與線程安全

重入:當不同的控制流程調用同一個函數時,有可能當一個調用還沒返回時,另一個調用就進入了該函數,將其稱作重入; 不可重入函數:當一個函數由於可重入出錯,則將此函數稱爲不可重入函數; 可重入函數:當一個函數由於可重入而不影響各自流程的正確結果

原创 appium環境搭建

  appium環境比較複雜,本章總結了搭建appium環境的過程。   一、安裝Android SDK   下載地址:https://pan.baidu.com/s/1nHqREoLcDPxwGav1CQ0J9w    提取碼:m9

原创 正則表達式的學習

       正則表達式:處理字符串的方法,以行爲單位處理字符串,其通過一些特殊符號的輔助,可以使用戶輕易的進行查找、刪除、替換某特定字符串的處理程序。        支持正則表達式表示法的工具程序:grep、vi、awk、sed