原创 shell腳本應用小程序
1...100的求和非遞歸: #!/bin/bash read num count=1 sum=0 val="" ret="" while [ $count -le $num ] do if [ $count -e
原创 內存的動態開闢
在C語言中,對於一些數組的大小有時候我們並不知道需要開闢多大的一塊內存空間,所以這時候我們就需要動態的去開闢一塊內存空間。C語言中動態開闢內存的函數有malloc、calloc、realloc、釋放內存的函數有freeC++中可以用運算符n
原创 鏈表的迴文結構
/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {} };*/ class Pali
原创 基於TCP協議的進程間通信
TCP協議是應用在傳輸層的協議。是一種面向連接的、可靠的協議。TCP協議的特點:1)面向字節流。2)TCP是面向連接的運輸層協議3) 每一條TCP鏈接只能有兩個端點4)TCP提供可靠交付的服務5)TCP提供全雙工通信根據TCP協議三次握手,
原创 shell腳本字符串截取的多種方法
1、cut命令cut命令主要是接受三個定位方法:第一,字節(bytes),用選項-b第二,字符(characters),用選項-c第三,域(fields),用選項-fstr="abchyew2635" echo $str|cut -c 6-
原创 dup /dup2
dup 、dup2用於複製一個現存的文件描述符,當調用dup函數成功後,內核在進程中創建一個新的文件描述符,此描述符是當前可用文件描述符的最小數值。dup2可以用nwefd參數指定新描述符的數值,如果newfd當前已經打開,則先將其關閉在做
原创 守護進程
守護進程(精靈進程daemon):是運行在後臺的一種特殊進程,它一直運行在後臺,不受用戶登錄和註銷的影響。所以它是獨立於終端的並且週期性地執行某種任務或等待處理某些發生的事件。不能直接和用戶交互。因此不允許往終端打印消息。crond是lin
原创 grep常見選項及命令
-E 按Extended規範進行匹配--color 標記匹配顏色-i 忽略大小寫匹配[fbl@www test6_26]$ echo "hello" | grep -i --color 'HELLO' hello-q 安靜匹配 即不輸出內容
原创 順時針打印矩陣
vector<int> clockwisePrint(vector<vector<int> > mat, int n, int m) { vector<int> ret; int i=0
原创 I/O多路複用之select
select是用於監視多個文件描述符狀態的變化的。即用來監視文件描述符讀/寫/異常狀態是否就緒。函數原型:int select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *except
原创 淺談c++靜態綁定、動態綁定
多態:指同一個實體同時具有多種形式,即一個名字可以具有多種語義。函數重載、類模板、函數模板等都屬於多態性。通俗來說就是接口的多種不同實現方式。函數綁定:就是函數的入口地址同函數調用相聯繫的過程。分爲靜態綁定和動態綁定。兩者的區別:靜態綁定在
原创 自旋鎖
1, spinlock介紹 spinlock又稱自旋鎖,線程通過busy-wait-loop的方式來獲取鎖,任時刻只有一個線程能夠獲得鎖,其他線程忙等待直到獲得鎖。spinlock在多處理器多線程環境的場景中有很廣泛的使用,一般要求使用s
原创 TCP協議三次握手與四次揮手
TCP協議是應用在傳輸層的協議。是一種面向連接的、可靠的協議。TCP協議的特點:1)面向字節流。2)TCP是面向連接的運輸層協議3) 每一條TCP鏈接只能有兩個端點4)TCP提供可靠交付的服務5)TCP提供全雙工通信下面來談一下TCP運輸連
原创 線程安全與可重入函數
線程安全:如果多線程同時運行同一代碼塊的結果每次都和單線程運行的結果一樣,則就是線程安全的◆線程不安全的本質原因是資源共享。 所以不使用任何共享數據的線程是安全的◆使用全局變量的函數是非線程安全的。◆使用靜態數據或其他共享資源的函數,必須通
原创 進程間雙向通信--sockpair
sockpair是一個套接字,可以用於網絡通信,也可用於本機內進程間通信。sockpair類似於管道,只不過管道是用於單向通信的,只能一方讀,一方寫,。而想要用於進程間雙向通信,就要pipe兩次,創建兩個管道。sockpair直接就可以實現