原创 刪除無頭單鏈表的非尾結點並打印單鏈表

問題描述:假設有一個沒有頭指針的單鏈表。一個指針指向此單鏈表中間的一個節點(不是第一個,也不是最後一個節點),請將該節點從單鏈表中刪除。 一般鏈表的刪除需要順着頭結點向下找到當前待刪節點的前驅節點,然後讓前驅節點指向後驅節點就行了。這裏,

原创 eval調研

eval是shell內置的命令。eval命令可以對命令行求值,然後做shell替換,再執行替換後的命令行。 1、eval會把賦值語句中雙引號之間的內容直接賦給‘=’前的變量,而不是當作字符串賦給變量。 例如: version=”(2

原创 倆個有序鏈表的合併

問題定義: 寫一個函數SortedMerge函數,該函數有兩個參數,都是遞增的鏈表,函數的功能就是合併這兩個遞增的鏈表爲一個遞增的鏈表,SortedMerge的返回值是新的鏈表。新鏈表由前兩個鏈表按元素遞增順序合併而成,

原创 多線程多進程服務器與進程線程池

1.進程池 (1)進程池是由服務器預先創建的一組子進程,這些子進程的數目在3-10個之間。進程池中的所有子進程都運行着相同的代碼,並具有相同的屬性,比如優先級,PGID等等。因爲進程池在服務器啓動之初就創建好了,所以他們沒有打開不必要的文

原创 gdb調試多進程和多線程

一,gdb的基礎知識1>介紹: gdb是Linux環境下的代碼調試工具。 2>使用:需要在源代碼生成的時候加上 -g 選項. 3>開始使用: gdb binFile 4>退出:ctrl + d 或 quit 5>調試過程中的常用命令:

原创 poll_server

poll與select不同在於描述符存儲方式不同和參數類型不同。 1.結構體數組的管理:當每次有需要關心的描述符時,將其放入結構體中,每次有無效的描述符後,將其描述符置-1,下次poll函數會忽略它。當有新的描述符加入時,從頭遍歷結構

原创 tcp_server和tcp_client

tcp_server代碼如下: #include<stdio.h> #include<stdlib.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h

原创 URG_PSH區別

一、URG&PSH的區別 TCP的報頭信息有六個控制位,說明本段文的性質;分別爲緊急URG、確認ACK、推送ACK、復位RST、同步SYN、終止FIN; 今天我們來主要來介紹介紹PSH和URG的區分; 1.URG是什麼? URG表

原创 select服務器

select代碼如下: #include<stdio.h> #include<sys/socket.h> #include<sys/types.h> #include<netinet/in.h> #include<arpa/inet.h>

原创 tcp定時器調研

TCP常用的四種定時器: 重傳定時器 堅持定時器 保活定時器 時間等待定時器 具體介紹: (1)重傳定時器 ①應用場景: TCP報文段超時 ② 特點:對於tcp協議,在規定的時間內,發現沒有收到ACK,就會重新發送消息,如果還沒有收

原创 arp腳本

 【arp腳本】