原创 在虛擬機中和本地上傳和下載文件

說明:我的虛擬機系統是Centeros7, 本地系統是Win7,工具是Xshell。希望能幫到大家。虛擬機下載文件到本地:1.找到要下載的文件或文件夾,pwd查看當前的絕對路徑2.將文件夾打包 (單個文件可以忽略這一步) tar -zcv

原创 進程間通信基本概念【操作系統】

進程間通信的目的: 1.數據傳遞 2.資源共享 3.通知事件 進程間通信的發展歷史: 1.管道 2.SystemV 3.POSIX(可移植操作系統接口) 管道: 1.匿名管道pipe 2.命名管道 SysV IPC: 1.消息隊列 2.共

原创 實現哲學家問題和生產者消費者模型

利用信號量實現互斥訪問資源:#include <stdio.h> #include <stdlib.h> #include <sys/ipc.h> #include <sys/sem.h> //本例描述互斥的打印字符AAZZ必須成對出現

原创 進程間通信之SystemV IPC--共享內存和信號量

共享內存:最快的可用IPC形式,一旦這樣的內存區映射到共享它的進程的地址空間,這些進程間數據的傳輸就不再涉及內核。然而往該共享內存區存放信息或從中取走信息的進程間通常需要某種形式的同步。(不涉及內核:進程不是通過執行任何進入內核的系統調用

原创 靜態庫和動態(共享)庫

只是擴展:ELF文件(Executable and Linkable Format):可執行和可連接格式文件。ELF可重定位目標文件的格式:ELF可執行文件的格式:靜態庫:(.a)所有的編譯系統都提供一種機制,將所有相關的目標文件打包成爲

原创 C++繼承概念梳理

繼承(inheritance)機制是面向對象程序設計使代碼可以複用的最重要的手段,它允許程序員在保持原有類特性的基礎上進行擴展,增加功能。類的成員具有三種訪問限定符:public                protect(保護)   

原创 進程間通信之SystemV IPC--消息隊列

System V IPC : 基於內核持續性System V 消息隊列:在程序之間傳遞數據的一種方法System V 共享內存:用於在程序之間高效的共享數據System V 信號量:用於管理對資源的訪問內核會爲每個IPC對象維護一個數據結

原创 string類模擬之引用計數和寫時拷貝

在 string類的模擬之深淺拷貝  中,我們可以看到,程序淺拷貝導致的崩潰,是因爲多次釋放內存引起的多次析構,那麼我們可以添加一個計數器,這裏稱之爲引用計數,來表示當前的空間有多少指針指向它,如果大於一的話,那麼在調析構函數的時候,就只

原创 浮點型數據在內存中的存儲

根據國際標準IEEE(電氣和電子工程協會) 754,任意一個二進制浮點數可以表示成下面的形式:浮點數 = (-1)^S*M*2^E 符號位(Sign) : 0代表正,1代表爲負階碼,也稱指數位(Exponent):用於存儲科學計數法中的

原创 文件I/O流

對於每一個ANSI C程序而言,至少打開三個流:標準輸入(stdin)、標準輸出(stdout)、標準錯誤(stderr),他們都是一個指向FILE結構的指針。 標準輸入爲:鍵盤設備  標準輸出爲:終端或屏幕。 標準庫I/O一般情況: 1

原创 Linux系統I/O

知識儲備: C庫I/O:點擊打開鏈接 Linux系統I/O: 文件描述符: 每個進程在Linux內核中都有一個task_struct結構體來維護進程相關的信息,稱爲進程描述符(Process Descriptor),而在操作系統理論中稱

原创 string類的模擬之深淺拷貝

淺拷貝:淺拷貝只拷貝指針,但拷貝後兩個指針指向同一個內存空間,或者可以說,原對象和拷貝對象共用一個實體,任何一個對象的改變都會引起另一個的改變。當類成員不包括指針何引用時,淺拷貝並無問題;但對於指針與引用成員,當對象的生命週期結束後,淺拷

原创 C++封裝順序表和帶頭結點的雙向循環鏈表

C語言中寫過了順序表和帶頭結點的雙向循環鏈表,這裏就不對具體的邏輯進行探究了。順序表:Vector.h:#ifndef __VECTOR_H__ #define __VECTOR_H__ #define NULL 0 typedef

原创 實現一個不能被繼承的類

在掌握了基本的繼承關係時,爲了加深理解和延伸知識,可以實現以下幾個特殊的類: 1.實現一個不能被繼承的類: 實現原理: 將類的構造函數聲明成私有的。 class AA { //實現一個不能被繼承的類

原创 虛表和虛基表的對象模型

繼承這一塊被虛表和虛基表弄的特別暈,專開一篇來研究研究:首先:虛表和虛基表無關係!!!虛函數:虛函數是在類的非靜態成員函數前加virtual,則這個成員函數成爲虛函數(並不是所有的成員函數能夠定義爲虛函數,如構造函數等),在某基類中聲明爲