原创 理解unix 系統I/O --csapp讀書筆記

昨天,面百度,其中有一個問題是:open的返回值是什麼?從你調用open函數到Linux下出現了一個文件,這中間發生了什麼? 第二個問題,當時就懵逼了,後來仔細想想,發現自己其實看過,其實講文件描述符相關~爲此,自己又重新看了AP

原创 利用可變參數模擬實現簡易printf

printf一般是這麼使用的, printf (“Characters: %c %c \n”, ‘a’, 65); 它是可變參數,遇到%s,%c,%d就格式化輸出 因爲我們重點是瞭解學習可變參數,因此,我們簡化一下,

原创 CopyOnWrite(COW)的優缺點

http://blog.jobbole.com/104707/ 點贊 收藏 分享 文章舉報 xy913741894 發佈了96 篇原創文章 · 獲贊 119 · 訪問量

原创 C++中文件讀取處理(按行或者單詞)

前段時間參加藍橋杯,遇到一些題目,題目本身不難,按照常規思路寫代碼即可,但是我忘了如何讀取文件了。。。面對一堆數據楞是寫不出。還有幾天是藍橋杯的決賽,所以爲了避免踩同樣的坑,我打算通過實例複習下文件讀寫。 文件讀寫需要引fstr

原创 UDP協議以及與TCP區別

UDP和TCP協議都屬於傳輸層協議,負責完成網絡中端到端之間的通信,其中UDP協議相對比較簡單,但是有些瑣碎的點還是值得總結的,另外一個UDP/TCP的區別也算是一個高頻考點了,因此,本文主要會總結下UDP協議的注意點,以及和TC

原创 linux下端口掃描的實現(TCP connect、TCP SYN、TCP FIN、UDP四種方式)

一、TCP 常用的端口掃描方式有以下三種: 1.connect掃描 我們知道,常見的TCP的socket實現過程爲 更本質的連接和結束的過程是如下這個樣子的: 從上面兩個圖我們可以看出來目標主機的一個端口如果是監聽狀態(L

原创 shell腳本編程實例--進度條,求和&平均值,斐波那契,改變字符串大小順序

利用求1+2+3+…+100的和,要求打印出1+2+3+…+100=5050 我想了兩種方法: 字符串拼接 依次打印 兩種思路代碼如下: //依次打印 sum=0 for ((i=1; i<=100; i++)) do i

原创 單鏈表含環的各種面試題

判斷鏈表是否帶環?若帶環求環的長度?若帶環求環的入口點? 用快慢指針求是否帶環?快慢指針相遇則帶環 設相遇點爲meet,求環長度,只需要設置p指針指向meet,設置count,循環的時候++count,直到p指向meet得出環長度 如下

原创 幾道有趣的概率題

這幾天在刷題,遇到幾道有趣的概率題,需要設計算法,編程實現,整理一下: 給定N張撲克牌和一個隨機函數,設計一個洗牌算法 void fun(vector<int>& v)

原创 C++四種類型轉換

const_cast 主要用於刪除變量的const屬性,便於賦值 const int a = 2; int* p = const_cast<int*>(&a ); *p = 3; reinterpret_cast 僅僅是重新解釋類型,沒有

原创 小型tcp服務器--select

在前面的博客中,我用多線程,多進程編寫了一個小型服務器,之所以會使用多進程/多線程是因爲服務器往往需要服務多個客戶端,提高併發性和效率是十分重要的,然而缺點是系統開銷較大,系統需要創建多個進程/線程。 然而,現實生活中,一個程序,或者一個

原创 sed,awk工具學習

sed工具 sed是一個很好的文件處理工具,本身是一個管道命令,主要是以行爲單位進行處理,可以將數據行進行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法 常用選項: -n∶使用安靜(silent)模式

原创 hash原理

通過hash函數將數據映射爲索引(下標),便於查找,在hash衝突做得好且數據較少的情況下可達到O(1)。 常用的hash函數有除留餘數法,線性探測,二次探測,開鏈法,在大部分情況下基本就是用開鏈法: hash的負載因子:元素個數/

原创 進程通信--總結

關於進程通信,我整理了一下自己所總結的幾篇文章以供以後複習查閱。 進程通信的一些基本概念:進程通信概念和進程通信方式 進程通信的幾種方式: 信號量:信號量(生產者和消費者模型) 和 信號量(進程通信) 共享內存: 共享內存(進程通信) 消

原创 Python踩坑筆記

Python現在是一門非常流行的語言,可用於後臺開發,也可以用來寫一些腳本快速實現,驗證功能,現在很火的機器學習,數據分析等等也熱衷於使用python,因此,學習python的用途還是很廣泛的。 一般來說,很多人在學python這種腳本語