原创 使用gdb調試多進程與多線程程序

高能預警 本文主要介紹瞭如何使用linux環境下的代碼調試工具—gdb來調試多進程與多線程程序,主要內容有: 1. 問題引入 2. 調試方法介紹及代碼實例 3. gdb常用命令總結 4. 一些大神們關於此主題的介紹並附鏈接

原创 linux:進程組&作業&會話—concept&distinction&contact

Foreword 本文介紹了linux中進程組、作業、會話的基本概念,並分別對其進行代碼舉例分析。 主要內容有: 3者基本概念 3者間的區別與聯繫   tips:全文閱讀需要**5min** Concep

原创 XShell初體驗—連接VMware虛擬機

ForeWord XShell是一個強大的安全終端模擬軟件。可以在Windows界面下用來訪問遠端不同系統下的服務器,從而比較好的達到遠程控制終端的目的。 這麼一個強大的軟件博主最近纔開始使用,還真有點小遺憾呢。 本文將介

原创 linux:進程中信號的“3種狀態 And 3張表”

高能預警 本文主要介紹了信號在進程pcb中的表示方法並用代碼驗證其真實性。 主要內容有: 1.信號在進程中的表示方法:3種狀態—3張表 2.對上述方法進行代碼驗證,包括: 信號集(sigset_t)和信號屏蔽字(Signal

原创 可重入函數與線程安全

一個問題 爲了理解可重入函數的概念,我們先來看這樣一個例子: main函數調用insert函數向鏈表中頭插節點node1,插入操作分爲兩步。 假設它剛做完第一步的時候。由於硬件中斷使進程切換到內核。再次回用戶態之前檢查到有信

原创 C語言實現小遊戲——三子棋(Three Peices Chess)

前言 相信不少小夥伴都玩過五子棋,其實三子棋和它的遊戲規則一樣,誰在行/列/對角線上連成直線,誰就獲得勝利。 接下來用C語言實現它 Code and Explain 首先爲了方便代碼編寫,實現系統試編程。在工程裏定義3個文

原创 linux信號系列文終結篇:信號的捕捉(含mysleep的實現)

高能預警 本文主要介紹了信號捕捉的概念和方法,並用相關函數實現了與系統sleep函數功能類似的mysleep程序。 本文主要內容有: 1.信號捕捉的概念及其在內核中的實現機制 2.信號捕捉相關函數介紹 3.mysleep的實現

原创 C語言實現9-9乘法表

前言 9-9乘法表是小學數學老師教給我們的,現在想起來還有滿滿的回憶呢。。 現在可以用代碼實現,不知道數學老師看到了會是什麼反應…… Code 話不多說,直接上代碼: #include<iostream> #include

原创 C語言應用題——如何確定跳水排名

問題描述 問題是這樣的: 思考 首先,某人比賽的名次一定可能是1-5中的任意一個。所以得用5個for循環來實現。 其次,這5個人的話都不是隻關於自己,而且還有關於別人的。所以上邊的5個for循環一定不能是各自獨立的。他們

原创 10分鐘搞定linux編輯器vim的配置

前言 Vim是linux操作系統的一款非常強大的編輯器,配置Vim就是要讓其形成一個像VS一樣的IDE集成環境。所以爲了能在linux下實現高效編程和開發,Vim的配置是必須要完成的一項任務。 然而,對linux初學者而言,這

原创 volatile關鍵字的作用

volatile關鍵字 volatile關鍵字是C/C++衆多關鍵字中的一個,但不常用。 我們知道,爲了提高程序程序執行的效率。大多數編譯器都會對齊進行優化。優化級別由低到高分爲:-O0~ -O3。 但有時候,編譯器的這種優化

原创 MAC協議之CRC校驗碼

ForeWord Everybody,我胡漢三又回來了ヾ(●´∀`●) ヾ 又到了我裝逼的時間了,今天我才發現。學習真的會使人快樂。這不,剛纔舍友找我開黑,我談定的回了一句: 畢竟我這樣的好學生已經不多了,嗯,目測以後

原创 linux:作業控制&作業規劃進程crond

ForeWord 本文介紹了作業控制的相關命令,並調研了作業規劃進程crond及crontab命令。 KeyPoint: 與作業控制有關的命令及其對應信號(Code) 作業規劃進程crond&crontab ...t

原创 C語言——確定某數比特位中1的個數並打印其32位比特數值

思想 其實也談不上什麼思想,這個題目相對還是簡單的。 首先,你得知道怎麼判斷某位是不是1,這個用模2就可以解決,比如: 其它數字也是如此,因此就可以得出結論:模2爲0的,其最低位就是0.反之爲1 接下來就是要判斷所有比特位的

原创 C語言應用題——誰是兇手?

Question 問題描述如下: 爲啥是日本呢,真的不是有意的,我發四。。。 Solution 解決辦法很簡單,只要判斷條件就好了,代碼如下: #include<stdio.h> #include<Windows.h>