段錯誤
所謂的段錯誤就是指訪問(access)的記憶體超出了系統所給這個程式的記憶體空間,也就是訪問了不該訪問的位址。 為什麼叫段錯誤呢, 因為記憶體是作業系統一段一段來分配做不同用途的,你訪問到不屬於你的那一段了,所以叫段錯誤。
怎麼能產生段錯誤呢?
比如01, 陣列訪問越界 int a[9], 你定義這麼乙個資料,但是訪問 a[9] 就記憶體越界了。
比如02, 指標,你把指標指向乙個未知的地方,然後給那裡寫資料,就可能引發段錯誤。
並不是 你訪問越界就一定會引發段錯誤 , 如果你越界的這個位置不太嚴重,可能系統就檢測不到,但你讀寫的資料就不對了,可能更可怕。
core檔案
核心轉儲, 會生成乙個core檔案,這是程式在不正常結束時,為了方便以後的除錯,產生的乙個記憶體快照,使用gdb這樣的工具可以除錯,追蹤問題。
如果你的程式段錯誤退出了,卻沒有產生這種core檔案,可能是因為系統禁止了。
ulimit -c 檢視當前設定的生成core檔案的最大值。
ulimit -c
0 不產生core檔案
ulimit -c
100 設定core檔案最大為100k
ulimit -c unlimited 不限制core檔案大小
比如你的系統當前設定的core檔案最大值是0, 那是生成不了core檔案的。
生成core檔案是為了除錯的,但這有什麼不好的影響呢?
比如你的服務占用記憶體很大,核心轉儲一次 需要生成乙個3g大小的記憶體映象,這時
第一,你的系統負載會突然很高
第二,生成這個檔案耗時很長才能寫到磁碟上,如果你提供的是繁忙的網路服務,這時服務會收到影響
第三,如果生成許多這樣的檔案,會占用很多磁碟空間。
01 什麼是爬蟲
網際網路是由網路裝置 網線,路由器,交換機,防火牆等等 和一台臺計算機連線而成,像一張網一樣。網際網路的核心價值在於資料的共享 傳遞 資料是存放於一台臺計算機上的,而將計算機互聯到一起的目的就是為了能夠方便彼此之間的資料共享 傳遞,否則你只能拿u盤去別人的計算機上拷貝資料了。3.1 只不過,使用者獲...
01什麼是設計模式
設計模式是前人對 開發總結出來的經驗和智慧型,針對不同型別的問題,設計出優雅的解決方案。就像武俠 裡面的武功秘籍,它是一套招式,學會了之後就可以用它行走江湖。設計模式的原理基於物件導向思想,學習完設計模式後會對封裝繼承多型有更深入的理解。我們學習設計模式的時候,我們不僅要學習它的語法和使用方式,更要...
01 css sprite是什麼,有什麼優缺點?
1.css sprite是什麼,有什麼優缺點?通常被意譯為 css影象拼合 或 css貼圖定位 1 css sprites的優點 2 css sprites的缺點 說白了,css sprites其實就是把網頁中一些背景整合到一張檔案中,再利用css的 background image backgro...