原创 Linux前後臺程序的切換與控制

本文主要介紹在Linux下運行程序,及在前臺和後臺之間切換與控制的方法。 前臺運行程序 通常的運行方法是:./a.out,表示運行當前目錄下的可執行程序,並運行在前臺。 運行在前臺指的是當前終端窗口會暫停接受其他指令,而處於a.

原创 Linux下top使用及各參數簡介

top top命令能夠顯示出各項與系統和進程相關的信息,在運維、調試以及問題定位方面經常使用。 語法: top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...]

原创 Linux進程狀態簡介

查看進程狀態 在Linux常用以下兩個命令查看進程狀態: ps -ef ps aux 這兩個命令都可以列出所有進程及其狀態,具體各命令的含義可以參考man手冊。 下文以使用ps aux爲例,會列出 USER PID %CPU

原创 Boost Asio快速入門

簡介 關於Boost的安裝,請參考 Linux便捷安裝boost。 總括地說,Boost Asio是一個跨平臺的、主要用於網絡和其他一些底層輸入/輸出編程的C++庫。 Boost.Asio在2003被開發出來,然後於2005年的

原创 Linux便捷安裝boost

簡介 boost庫基本上必不可少的c++庫,它提供了大量經過驗證的程序例程,能夠直接用於生產項目。 但它的龐大的何種也讓人望而生畏,不過還好,只需安裝一次,就可以充分享受便捷的果實。 版本 boost的官方網站:https:/

原创 查看Linux系統常用信息的方法

簡介 在系統運維或調試時,經常需要查看系統信息,如發行版、內核版本、內存、磁盤容量等信息。 一般而言,所有的信息基本上都能夠通過系統目錄/proc獲得,同時也有對應的便於記憶的命令來查看,其實用的多了基本就記住了。 這些信息的獲

原创 c++使用amqp-cpp庫連接RabbitMq

AMQP-CPP簡介 c++連接RabbitMq的庫目前不多,很多朋友直接使用Rabbitmq-c封閉了類,供c++使用,也是一種方法。 經過選型和使用,我在項目中使用了AMQP-CPP,本文主要介紹AMQP-CPP庫的使用。

原创 switch與if-else-if區別與應用實踐

相同及區別 switch和if-else-if是c/c++中的兩種分支語句,它們的功能基本相同,都是判斷條件後執行相應的動作。 當然它們也有區別,不然爲什麼同一件事情要用兩種不同的方法來做呢? if-else if-else i

原创 c++11多線程編程同步——使用future和promise

簡介 在多線程編程中,需要數據共享,如一個線程需要使用另一線程運算產生的數據。 涉及到異步編程時,有時需要線程間同步,如執行異步訂閱消息時,當訂閱消息的結果返回成功後,處理消息的線程才需要運行。 以上場景的都可以使用std::f

原创 AMQP-CPP在Windows下的使用及網絡層Boost Asio實現

背景 AMQP-CPP 是c++連接RabbitMq的客戶端庫,它完全異步,需要c11的支持。 關於 AMQP-CPP 的基礎使用,請參考 c++使用amqp-cpp庫連接RabbitMq 。 源碼下載請移步github: AM

原创 c++ 回調函數與std::function使用實例

理解回調 實際項目中,經常有使用回調函數的需求,如: 雙方通信中,等待接收對方的數據並處理,如使用socket進行的TCP通信 定時器事件,當定時器計時結束時,需要處理某任務 信號的觸發,需要執行某任務 在同步編程中,需要啓

原创 深入理解c++中的Lambda表達式

Lambda簡介 Lambda表達式最重要的特點就是能夠極其方便地創建函數對象。 其實,Lambda表達式能做到的事情,手工都能做到,無非就是多打一些字。 但是,Lambda表達式提供的簡潔、易用、功能之強大,真是香啊! 總的來

原创 c++中智能指針使用小結

簡介 指針是c/c++中重要的概念,也因爲指針,難倒了許多人。 舉個例子,對於malloc或new出來的內存,是在堆上分配的。那麼從該內存分配完成的時刻開始,這塊內存就由應用程序來管理了,包括使用和釋放。 c程序中很多與內存管理

原创 c++11中的lock_guard和unique_lock使用淺析

鎖 鎖用來在多線程訪問同一個資源時防止數據競險,保證數據的一致性訪問。 多線程本來就是爲了提高效率和響應速度,但鎖的使用又限制了多線程的並行執行,這會降低效率,但爲了保證數據正確,不得不使用鎖,它們就是這樣糾纏。 作爲效率優先的

原创 c++中的Lambda表達式

Lambda表達式 C++11的一大亮點就是引入了Lambda表達式。利用Lambda表達式,可以方便的定義和創建匿名函數。 相較於函數指針和函數符等函數對象,Lambda有以下優點: 距離:定義與使用在同一個地方,方便查看、