↓推薦關注↓程序員的圈子啊那是十分神秘,又令人著迷的。每天的工作就是對著電腦,那他們的工作是如何的呢?我們來品一品(PS:后面奉上各位大佬的桌面,別走開哦)↓↓↓最最常見的普通版:升級版:算不得體貼版:逼退人升級版:舒適版:超人性版:獨立版:高級版:友誼版:高級程序員版:干凈的其...
↓推薦關注↓題很多,先上題后上答案,便于大家思考問題點:1、C和C的特點與區(qū)別?2、C的多態(tài)3、虛函數(shù)實現(xiàn)4、C和C內存分配問題5、協(xié)程6、CGI的了解7、進程間通信方式和線程間通信方式8、TCP握手與釋放9、http和https的區(qū)別?10、虛擬內存的概念與介紹11、單鏈表的反...
我們知道為了CPU之間減少“干擾”,每個CPU上都有一個任務隊列。運行的過程種可能會出現(xiàn)有的CPU很忙,有的CPU很閑,如下圖所示:為了避免這個問題的出現(xiàn),Linux內核實現(xiàn)了CPU可運行進程隊列之間的負載均衡。因為負載均衡是在多個核上的均衡,所以在講解負載均衡之前,我們先看下多...
因為要對百萬、千萬、甚至是過億的用戶提供各種網絡服務,所以在一線互聯(lián)網企業(yè)里面試和晉升后端開發(fā)同學的其中一個重點要求就是要能支撐高并發(fā),要理解性能開銷,會進行性能優(yōu)化。而很多時候,如果你對Linux底層的理解不深的話,遇到很多線上性能瓶頸你會覺得狗拿刺猬,無從下手。我們今天用圖解...
我們說的ModernC,一般指的是C11及以后的標準,從C11開始,ModernC引入了大量的實用的特性,主要是兩大方面,學習的時候也可以從這兩大方面學習:增強或者改善的語法特性;新增的或者改善的STL庫。我們來看幾個具體的案例:案例1:統(tǒng)一的類成員初始化語法與std::init...
大家都知道,在創(chuàng)建一個服務器程序的時候,需要先listen一下,然后才能接收客戶端的請求。例如下面的這段代碼我們再熟悉不過了。int?main(int?argc,?char?const?*argv[]){?int?fd?=?socket(AF_INET,?SOCK_STREAM,...
↓推薦關注↓內存管理是C最令人切齒痛恨的問題,也是C最有爭議的問題,C高手從中獲得了更好的性能,更大的自由,C菜鳥的收獲則是一遍一遍的檢查代碼和對C的痛恨,但內存管理在C中無處不在,內存泄漏幾乎在每個C程序中都會發(fā)生,因此要想成為C高手,內存管理一關是必須要過的,除非放棄C,轉到...
↓推薦關注↓以前做過兩年C程序移植工作,從Win32平臺移植到Linux平臺。大約有上百萬行C/C代碼,歷時一年多。在開發(fā)Win32版本時,已經強調了程序的可植性,無奈Win32團隊里對Linux精通的人比較少,很多問題沒有想到,直到后來移植工作開始時,才發(fā)現(xiàn)移植并非像想的那樣簡...
在TCP連接中,客戶端在發(fā)起連接請求前會先確定一個客戶端端口,然后用這個端口去和服務器端進行握手建立連接。那么在Linux上,客戶端的端口到底是如何被確定下來的呢?事實上很多我們平時遇到的問題都和這個端口選擇過程相關,如果能深度理解這個過程,將有助于我們對這些問題的深刻理解。Ca...
我是一個瀏覽器,每到夜深人靜的時候,主人就打開我開始學習。為了不讓別人看到瀏覽記錄,主人選擇了“無痕模式”。但網絡中總是有很多壞人,他們通過抓包截獲我和服務器的通信,主人干了什么,請求了什么數(shù)據(jù)全被他們知道了!光竊聽也就罷了,他們還經常篡改內容,在網頁里面插入誘人的小廣告,真是太...
↓推薦關注↓std::set/std::map(以下用std::map代表)是常用的關聯(lián)式容器,也是ADT(抽象數(shù)據(jù)類型)。也就是說,其接口(不是OO意義下的interface)不僅規(guī)定了操作的功能,還規(guī)定了操作的復雜度(代價/cost)。例如set::insert(iterat...
一、前言這篇文章來聊聊大名鼎鼎的GDB,它的豪門背景咱就不提了,和它的兄弟GCC一樣是含著金鑰匙出生的,在GNU的家族中的地位不可撼動。相信每位嵌入式開發(fā)工程師都使用過gdb來調試程序,如果你說沒有用過,那只能說明你的開發(fā)經歷還不夠坎坷,還需要繼續(xù)被BUG吊打。我們都知道,在使用...
↓推薦關注↓英特爾的長期編譯器專家JamesReinders在一篇博客中透露,他們將在下一代英特爾C/C編譯器中使用LLVM開源基礎架構;并分享了一些相關信息?!癓LVM有助于我們實現(xiàn)為英特爾架構提供最佳C/C編譯器的目標。最新的英特爾C/C編譯器使用LLVM,可提供更快的編譯時...