博主是大三本科生,即將參加2019屆秋招,目前正在複習基礎知識,為了以後便於查找,故記錄在隨筆裡面,希望大家多多指教。 ...
Linux/Unix編程部分
1.進程間通信方式:信號,信號量,消息隊列,共用記憶體,套接字Socket
2.ipcs: Linux/Unix下的命令,可以用來查看當前系統中所使用的進程間通信方式的各種信息,可以通過不同的參數選項來進行查詢。
ipcs -a 是預設的輸出信息 列印出當前系統中所有的進程間通信方式的信息
ipcs -m 列印出使用共用記憶體進行進程間通信的信息
ipcs -q 列印出使用消息隊列進行進程間通信的信息
ipcs -s 列印出使用信號進行進程間通信的信息
3.ipcrm:Linux/Unix下的命令,可以用來移除進程間通信的載體,如共用記憶體段,信號集合和消息隊列等,該命令只有root管理員和ipc的創建者才可以成功使用。該命令執行之後會將與載體相關的數據一起移除。
4.ELF文件:Unix/Linux系統下的一種標準文件格式,可以分為目標文件、可執行文件、共用庫文件和核心轉移文件四種不同的類型,主要由ELF頭部、Program Header table、Section、Section Table組成,本質上是類Unix系統的標準二進位文件。
網路編程部分
1.connect發生阻塞,怎麼解決?
答:方法一是設置定時器,使connect進行定時等待,一旦超時就返回錯誤,方法二是選擇使用非阻塞模式,返回之後使用select判斷此時所處的狀態。
2.select判斷數據可讀,但是讀回來的人數據長度為0,為什麼?
答:某個套接字集合中沒有準備好,可能會select記憶體用FD_CLR清該位為0
3.keepalive是什麼?
答:TCP協議中用於檢測死連接的一種機制。當建立TCP連接的雙方長時間沒有數據傳輸而處於空閑狀態時,其中一方的主機會發出保持活動信號給另外一方,並等待應答。如果主機可達並且有回應,那麼認為對方主機還線上,連接繼續保持,反之,重覆多次發現都沒有報文返回,說明連接已經丟失,直接丟棄該連接。keepalive的探測報文發送間隔可以設置,具體可以參考這篇博客:https://blog.csdn.net/u010126059/article/details/50670801
演算法部分
1.排序:常用的排序演算法有多種,如快速排序、插入排序、基數排序等,各個演算法都有自己的優點和缺點,時間複雜度和空間複雜度也不同,在選用排序演算法時應該結合實際需求來選擇合適的演算法。
快速排序:平均時間複雜度為O(nlogn),最壞情況是O(n^2),當分割的元素選取不恰當時,就會出現最壞情況,此時左區間長度為0,右區間長度為n,一般採用三點中值演算法進行優化。
插入排序:平均時間複雜度為O(n^2),適合小數據量或者數據接近有序的排序
C++ STL中實現了一個sort函數,用於對具有線性表結構的容器中的數據進行排序,可以用於對vector或者數據進行排序,不能用於對list和slist進行排序,其底層實現機制運用了以上所說的快速排序和插入排序,源碼分析可以參考以下兩篇博客:
https://blog.csdn.net/u010902721/article/details/45868391和https://blog.csdn.net/u010902721/article/details/45869367(感謝這位大神的分享,基本將sort的實現機制都說到了)
C++部分
1.值傳遞、指針傳遞和引用傳遞的區別
值傳遞是傳遞變數的值,將實參的值拷貝一份給形式參數,在函數中形參的改變與實參沒有關係,因此在寫swap的demo程式時輸出結果並沒有發生交換,因為形式參數相當於局部變數,其值存放在棧區域,函數執行完畢退出棧會被銷毀。
引用傳遞和指針傳遞本質上都是傳遞地址,實參和形參都是同一變數的地址,在函數中對形參的操作是對該地址對應的記憶體進行操作,因此測試swap的demo輸出結果會發生交換。
2.dynamic_cast
全稱是動態類型轉換,是C++提供的一種運行時多態類型轉換的操作。dynamic_cast提供了類型安全檢查,是一種基於能力查詢(Capability Query)的轉換,所以在多態類型間進行轉換更提倡採用dynamic_cast。dynamic_cast只能用於多態類型的類型轉換,被轉換對象obj的類型T1必須是多態類型,即T1必須公有繼承自其它類,或者T1擁有虛函數(繼承或自定義)。若T1為非多態類型,使用dynamic_cast會報編譯錯誤。
具體解析可以參考這篇博客:https://www.cnblogs.com/weidagang2046/archive/2010/04/10/1709226.html
暫且分享到這裡,未完待續.............
2018-07-22 23:26:04 深圳