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