原创 fflush與fsync的區別

fflush用於把C標準緩衝的數據寫到內核緩衝,而fsync及其其他類似的函數用於將數據從內核緩衝寫進磁盤。

原创 linux查看文件幾個方式以及優缺點

linux 查看文件有幾個方法 注: 新建文件可以使用 touch 查看文件類型可以使用 file 查看文件 cat 命令 : cat命令會顯示所有的文檔內容 除此之外,加上一些參數定製服務,例如, cat -n file 可

原创 學習計劃

在未來的一年或數年裏,需要逐步學習和掌握如下幾個方面的知識,包括服務器編程,關係型數據庫,非關係型數據庫,進一步提升自己算法能力,也需要在rpc,mq等方面有所涉獵,應該掌握三種語言,包括c++,java以及shell。每天堅持學

原创 算法二:求解無重複字符的最長子串

該代碼實現的思路來自leetcode int lengthOfLongestSubstring(string s) { if(s.empty()) { return 0;

原创 算法一:輸入一個數組和一個target,求解兩數之和等於target的數組下標

該題最簡單的做法是暴力窮舉法,但是窮舉法的算法複雜度是o(n^2),所以可以採用如下方法,利用哈希表的特性, 使算法複雜度降到o(n) class Solution { public: vector<int> twoSum

原创 linux使用backtrace打印堆棧信息並調試

https://blog.csdn.net/gongmin856/article/details/79192259

原创 linux fork函數的使用

linux的fork函數用於創建一個新的子進程 例如 pid = fork(); 如果pid等於0,說明此時運行子進程 如果pid不等於0,說明運行的是父進程

原创 殭屍進程的定義以及回收

殭屍進程的定義: 當子進程調用exit或main函數有return語句返回的時候,子進程會把返回值發送給操作系統,操作系統不會回收該子進程知道該子進程的父進程獲取該子進程的返回值,這種狀態就是殭屍進程。結合unix的信號機制,以及

原创 TCP 禁止進入Time_wait狀態設置

TCP在斷開連接的時候,主動發起斷開連接操作的一方,比如server調用close斷開連接的時候,會發送FIN包,server因此會進入time_wait狀態,進入time_wait狀態後,如果程序重啓,就會出現bind erro

原创 TCP如何優雅的斷開連接

在某些應用場景中,TCP需要優雅的斷開連接,比如某一個場景,A和B之間建立了一條鏈路,那A想要向B發送數據包後斷開連接,然後B收到數據包後要做數據回覆,那麼在調用close斷開連接的時候,顯然B發送的數據A沒有辦法收到,這個時候可

原创 端口號的作用

端口號就是在同一操作系統內爲區分不同套接字而設置的,因爲無法將1個端口號分配給不同套接字。

原创 tcp知識點一,緩衝區滿

在TCP傳輸過程中,如果read函數的讀取速度比接收數據的速度慢,則緩衝區可能被填滿,此時套接字無法再接收數據,但即使這樣也不會發生數據丟失,因爲傳輸端套接字將停止傳輸。也就是說,面向連接的套接字會根據接收端的狀態傳輸數據,如果傳

原创 網絡地址分類與主機地址邊界

可以通過網絡字節的範圍來判斷地址是A類,B類,還是C類地址,A類地址的首字節範圍爲:0-127.B類地址的首字節範圍爲128-191,C類地址的首字節範圍爲192-223。

原创 vector操作迭代器的失效

vector操作,例如插入操作有可能會導致迭代器的失效,刪除操作一定會導致迭代器的失效。在使用迭代器的時候一定要注意這個問題。 點贊 收藏 分享 文章舉報 專注雲吸貓開發

原创 allocator

allocator允許分配一段某種類型但還沒有完成構造的內存 舉例: std::allocator a1; //聲明一個allocator變量 int *a = a.allocate(1); //申請一段內存 a1.c