原创 radon變換用於車牌圖像傾斜矯正

本文轉載至:https://www.cnblogs.com/virqin/archive/2012/05/22/2514083.htmlRadon變換定義:下圖顯示了在指定的旋轉角度的單一投影。間距爲1個像素的平行光穿過圖像,則radon

原创 無名管道和命名管道的異同點

【無名管道】特點:1、只能用於具有親緣關係的進程之間通信(父子進程或者兄弟進程)。2、是一個單工(半雙工)的通信模式,具有固定的讀寫端。3、每次使用都需要創建管道對象。【有名管道】特點:1、可以在互不相關的進程之間實現通信。2、改管道是通

原创 消息隊列

消息隊列是內核中的一個鏈表用戶進程將數據傳輸到內核後,內核重新添加一些如用戶ID、組ID、讀寫進程的ID和優先級等相關信息後並打成一個數據包稱爲消息。允許一個或者多個進程往消息隊列中寫消息和讀消息,但一個消息只能被一個進程讀取,讀取完畢後

原创 Linux多線程(十一)信號量實現互斥鎖

這份代碼是在之前介紹的互斥鎖的代碼上直接改過來的,可以對比看看account.h:#ifndef __ACCOUNT_H__#define __ACCOUNT_H__#include <pthread.h>#include <semaph

原创 無名管道(pipe)通信

這個程序用無名管道實現命令 cat /etc/passwd  |  grep root其實在終端命令中 | 就是一個管道 cat /etc/passwd會把結果打印到標準輸出 ,grep  root 會把結果從標準輸入實現流程:1.父進程

原创 Xshell安裝及與服務器建立連接過程

Xshell是Windows下一款功能非常強大的安全終端模擬軟件,支持Telnet、Rlogin、SSH、SFTP、Serial 等協議,可以非常方便的對linux主機進行遠程管理。Xshell下載地址:https://www.netsa

原创 C++虛函數實現機制

本文轉自至:https://blog.csdn.net/jiangnanyouzi/article/details/3720807 其實很多人都知道,虛函數在c++中的實現機制就是用虛表和虛指針,但是具體是怎樣的呢?從more effec

原创 無名管道(pipe)--實現管道雙向通信

      上一篇的管道通信可以看得出來,管道通信是單向的,只能一端寫入,一端讀取,有點類似通信中的單工通信,若要實現雙工通信,可以採用兩個單工通信。同樣的道理,要實現管道雙向通信,採用兩個管道即可。   上圖完成這樣一項任務:父進程負責

原创 System V IPC概述

1.System  V引入了三種高級進程間的通信機制:消息隊列、共享內寸和信號量   IPC對象(消息隊列、共享內存和信號量)存在於內核中而不是文件系統中,由用戶控制釋放,不像管道的釋放由內核控制   IPC對象通過其標識符來引用和訪問,

原创 共享內存

共享內存區域是被多個進程共享的一部分物理內存 多個進程都可把該共享內存映射到自己的虛擬內存空間,所有用戶空間的進程若要操作共享內存,都要將其映射到自己虛擬內存空間中,通過映射的虛擬內存空間地址去操作共享內存,從而達到進程間的數據通信。 共

原创 LINUX進程信號量

 首先了解一下,信號量機概念是由荷蘭科學家Dijkstr引入,值得一提的是,它提出的Dijksrtr算法解決了最短路徑問題。       信號量又稱爲信號燈,它是用來協調不同進程間的數據對象的,而最主要的應用是共享內存方式的進程間通信。本

原创 命名管道的通信舉例

fifo_read.c#include <stdio.h>#include <stdlib.h>#include <fcntl.h>#include <string.h>#include <unistd.h>int main(int ar

原创 C++面試題 構造函數調用虛函數

      在構造函數中,虛擬機制不會發生作用。因爲基類的構造函數在派生類構造函數之前執行,當基類構造函數運行時,派生類的數據成員還沒有初始化。如果基類構造期間調用的虛函數向下匹配到派生類,派生類的函數理所當然會涉及到本地數據成員,但是那

原创 C++初始化和賦值的區別

1.C++中, 對於簡單類型的賦值和初始化的區別基本可以忽略2.當涉及到類或者複雜的數據類型時,問題就變得不那麼簡單了,下面以一個例子來引入話題:#include <iostream>using namespace std;class P

原创 Linux多線程(十一)信號量實現條件變量

這份代碼也是基於上兩篇博文修改,利用信號量實現了條件變量:源碼1:#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <