原创 通過指令“ps -l”查看進程信息

簡介 在Linux環境下使用ps -l指令即可以查看當前環境下與bash相關的的進程信息。 如圖所示 下面我們來依次解釋下這些內容 F:代表這個進程的旗標,說明進程的權限 常見的有4和1,4表示該進程是使用的root權限,

原创 適用於程序員的二八法則

說明 二八法則:又稱二八定律,是19世紀末20世紀初意大利經濟學家帕累託發現的。他認爲,在任何一組東西中,最重要的只佔其中一小部分,約20%,其餘80%儘管是多數,卻是次要的,因此又稱二八定律。(搬運百度百科詞條) 但其實二八

原创 實現帶最小值操作的棧

簡介 棧的結構特性是後入先出,一般棧給出了基本操作接口有: empty:棧空返回真; pop:移除棧頂元素; push:在棧頂增加元素; size:返回棧中元素數目; top:返回棧頂元素。 今天我們要實現一個新的棧,

原创 解決ssh: connect to host github.com port 22: Connection refused

問題引入 當你在Linux環境下配置好git並鏈接到後,你想要把本地的代碼上傳到github中。但是當你push的時候,會出現失敗的情況。 ssh [email protected] 使用上面的命令查看詳細錯誤信息,得到以下結果 解

原创 實現時間複雜度爲O(nlogn)的鏈表排序算法

簡介 鏈表排序是一道常見的關於鏈表的算法題,往往我們會使用冒泡排序或者選擇排序這兩種算法來解決這個問題。但是它們的時間複雜度是O(n²),效率不高。所以今天我們要實現時間複雜度O(nlogn)的算法就不能再選擇這兩種排序算法。而滿

原创 文件描述符和文件描述符表

文件描述符與文件描述符表 前面我們介紹過Linux中有一個結構體task_sturct專門用來控制進程叫做進程描述符,在它的裏面存放了各種關於進程的信息,其中有一個指針,源碼中給出的定義爲:struct file_struct

原创 【Ubuntu中合併cgroup掛載點失敗】報錯:mount: none is already mounted or /cgroup/cpu busy

問題 有時候我們可能會遇到需要修改系統默認cgroup掛載點的情況,例如需要把cpu,cpuacct,cpuset掛載到一起的情況,但是有些操作系統(目前知道Ubuntu會出現這種問題)如果直接使用下面方法合併掛載cgroup的時

原创 TCP協議以及其報頭結構分析

簡介 TCP協議是TCP/IP協議族中的一個重要協議,與IP協議相比,TCP協議更靠近應用層,屬於傳輸層協議,因此在應用程序中具有更強的可操作性。一些重要的socket選項都和TCP協議相關。 TCP協議的特點 傳輸層的主要協議有

原创 詳細說明優先級隊列的使用方法

簡介 優先級隊列是一種常見的數據結構,在《STL源碼剖析》中給出的定義是:priorty_queue是以個帶權值觀念的queue,它允許加入新元素,移除舊元素,審視元素值等功能。由於這是一個queue,所以只允許在底端加入元素,並

原创 一次代碼review引發的思考與總結(好的編碼習慣總結)

緣由 畢業後工作一年多,一直想總結一下工作中收穫到的一些好的經驗,但是一直沒有找到機會把這些零散的經驗好好的總結匯總起來。這一次在公司經歷了整個一個功能模塊從無到有的過程,包括,需求分析,模塊設計,代碼編寫,前後端聯調與自測,以及

原创 C++11特性:auto關鍵字與基於範圍的for循環

auto auto關鍵詞在c++98中就有過,用來定義變量爲自動生命週期,完全是雞肋,因爲不用auto變量本來就是自動生命週期啊,所以c++11中,auto的用法改變了,簡單來說它的作用就是聲明變量時可以根據變量類型自動推斷類型。

原创 Linux進程間的通信方式之管道

簡介 管道是進程間通信(IPC)的一種重要方式,在 Linux 中,管道的實現並沒有使用專門的數據結構,而是藉助了文件系統的file結構和VFS的索引節點inode。通過將兩個 file 結構指向同一個臨時的 VFS 索引節點,而

原创 Linux進程間通信方式之消息隊列

簡介 消息隊列是systemV風格中一種進程間通信的方式,它提供了一種從一個進程向另一個進程發送一個數據塊的方法。他在Linux下是以雙向鏈表(list_head)的形式實現,可以把消息看作一個記錄,具有特定的格式以及特定的優先級

原创 C++11特性:右值引用與move語義

右值引用 右值引用是C++11中的一個重要特性,它的出現解決了很多C++歷史遺留問題。其總結來說可以說是解決了棧中對象的所有權的轉移問題。 首先右值是從C語言設計時就有的概念。不嚴格的來說,左值對應變量的存儲位置,而右值對應變量的

原创 虛函數與純虛函數

簡介 虛函數 在C++中虛函數是實現多態的一種機制,核心理念就是通過基類訪問派生類定義的函數。 最常見的例子就是如下 class A { public: virtual void foo() {