原创 C語言是怎樣實現封裝、繼承、多態的?

       我們都知道封裝、繼承、多態是c++面向對象中的基本特徵。C語言是面向過程的語言,自身沒有這些特性,那如何使用C語言來模擬C++的封裝、繼承、多態等面向對象的基本特徵。下面就要討論一下封裝、繼承、多態等面向對象在c語言中是如何

原创 Ruby和Test::Unit單元測試框架

1.Test::Unit Framework框架(1)斷言==預期的結果注:包含require 'test/unit'表示可以進行單元測試(測試用例),然後分解成較爲底層的形式,測試用例通常包括和某個特定功能或特性相關的所有測試。規定:表

原创 管道、消息隊列、共享內存之間的區別與聯繫

 管道和消息隊列的區別 管道(PIPE)      管道通信方式的中間介質是文件,通常稱這種文件爲管道文件。兩個進程利用管道文件進行通信時,一個進程爲寫進程,另一個進程爲讀進程。寫進程通過寫端(發送端)往管道文件中寫入信息;讀

原创 Win32OLE提供的Excel操作

首先創建excel的WIN32OLE對象:excel= WIN32OLE.new('Excel.Application')1.  打開excel文件:     workbook =excel.Workbooks.Open('c:\exam

原创 進程間通信——消息隊列

      前面的兩篇博客分別介紹了兩種進程間通信的方式:匿名管道、命名管道。下面在介紹一種方式——消息隊列。 1.基本概念       消息隊列提供了一種從一個進程向另一個進程發送一個數據塊的方法。每個數據塊都被認爲是一個類型,接收者

原创 ‘生產者-消費者’模型與‘讀-寫者’模型

★生產者-消費者模型      首先,我們先分析一下生產者與消費者模型:生產者與消費者是模型中不可缺少的2種角色,當然模型中肯定需要一個保存數據的場所,能夠將生產者生產的數據進行存儲。同時,模型必須要滿足生產者產生出數據後,消費者才能夠進

原创 Ruby中self的作用

    Ruby中有一個奇怪的關鍵詞self,這個關鍵詞非常的靈活,在不同的場景下,self代表着不同的含義。     學過C++的同學,可以這樣理解,self其中的一個作用類似於C++類中的this指針的使用,表示的就是當前對象或者默認

原创 系統調度—‘線程’

    在前面的博文中討論了進程的相關概念,這裏重新引入一下‘線程’的概念。進程有各自獨立的地址空間,所以進程間的通信是比較麻煩的,只能藉助管道等才能夠實現進程間通信。而linux系統中,多個線程共享進程的地址空間(也可以說是進程是一個獨

原创 C/C++的小知識

 1.static關鍵字的作用和使用場景?     。static的作用——隱藏,變量所有未加static前綴的全局變量和函數都具有全局可見性,假設有兩個文件,其中一個文件中定義全局變量a,int a = 10;如果在另一個文件中聲

原创 論‘進程’相關操作

★進程相關概念        (1)進程:是一個能夠分配處理器並由處理器執行的,能夠攜帶資源的活動實體。        (2)進程控制塊(PCB):每一個進程中都有唯一的一個進程控制塊來保存進程的相關信息,實際PCB就是一個task_st

原创 進程等待&程序替換

進程等待       一個進程在終止時會關閉所有的文件描述符,釋放在用戶空間分配出來的內存,但它的PCB還保留着,而且內核中還保存着一些信息,如果是正常終止,則保存着退出狀態,如果是異常終止,則保存着導致該進程終止信號是哪個,。這個進程的

原创 再談‘進程’

★進程標識符           每個進程都有非負的整形表示唯一的進程ID。下面是一些標識符:               pid:調用進程的ID(獲取方式getpid)                 ppid:調用進程的父進程ID(獲

原创 進程間通信——命名管道

   前面介紹的管道屬於匿名管道,只能夠用於有血緣關係的進程間通信,比如父子進程之間的通信。下面主要討論另一種管道——命名管道。     在命名管道(named pipe或FIFO)提出後,該限制得到了克服。FIFO不同於管道之處在於

原创 進程間通信—‘匿名管道’

      進程間通信:每個進程都有各自的地址空間,所以進程之間交換數據就需要通過內核,將數據拷貝到內核中,然後另一個進程進行讀取,這種方式成爲進程間通信。★創建管道         include <unistd.h>