Time of Update: 2018-12-05
除了人工的分析之外,最簡單最直接的調試方法要算printf了。不過,我們這裡推薦使用的並不是初學C語言時使用的函數int printf(const char *format, ...),而是稍微複雜一點的fprintf()函數,因為它更方便我們之後重新導向錯誤輸出資訊到指定的裝置。fprintf()函數的原型如下:int fprintf(FILE *stream, const char *format, ...)可以看到,它與printf()函數相比多出來了第一個參數FILE *stream,
Time of Update: 2018-12-05
一下面的方式解釋位元組和位元的區別 網路公司提供的下載速度的顯示單位和瀏覽器或下載軟體的顯示單位是不一樣的一般電信提供8M的速度,寫的是8Mbps,也就是8Mb/S(p是英文單詞per,"每"的意思.這裡讀作:每秒8兆位元)=8Mbit/S=8*1024Kbit/S(M換算成K需要乘以1024,2進位,2的十次方)而瀏覽器和下載軟體的寫法是800KB/S=800KByte/S(這裡讀作:每秒800KB)小寫b是bit(位元),大寫的B是Byte(位元組).而bit和Byte的關係為:1Byte=
Time of Update: 2018-12-05
一.線程屬性 線程具有屬性,用pthread_attr_t表示,在對該結構進行處理之前必須進行初始化,在使用後需要對其去除初始化。我們用pthread_attr_init函數對其初始化,用pthread_attr_destroy對其去除初始化。 1.名稱::pthread_attr_init/pthread_attr_destroy功能:對線程屬性初始化/去除初始化標頭檔:#include <pthread.h>函數原形:int
Time of Update: 2018-12-05
今天開始學習linux下用C開發多線程程式,Linux系統下的多線程遵循POSIX線程介面,稱為pthread。#include <pthread.h>int pthread_create(pthread_t *restrict tidp, const pthread_attr_t *restrict attr, void *(*start_rtn)(void),
Time of Update: 2018-12-05
原文出處: http://blog.yam.com/ddy1280/article/3064451最近發現之前使用YACC & LEX 所寫的程式竟然有memory leaks花了一些時間測試除錯,最後發現問題出現在YACC & LEX 裡面幫助我抓到這些問題的好工具是 mtrace 。mtrace 是一個 GNU C/C++(Linux platform)提供的函式使用簡單搭配 gcc -g 除錯資訊,可以輕易找到問題點例: 1 #include <stdio.h>
Time of Update: 2018-12-05
一直以來沒分清楚Flash和ROM以及RAM的額區別,今天閑來無事,轉載了一篇文章;http://blog.chinaunix.net/space.php?uid=22342666&do=blog&id=1774747常見儲存空間概念:RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash儲存空間可以分為很多種類,其中根據掉電資料是否丟失可以分為RAM(隨機存取儲存空間)和ROM(唯讀記憶體),其中RAM的訪問速度比較快,但掉電後資料會丟失,而ROM掉電後資
Time of Update: 2018-12-05
listen函數使用主動串連套介面變為被串連套介面,使得一個進程可以接受其它進程的請求,從而成為一個伺服器處理序。在TCP伺服器編程中listen函數把進程變為一個伺服器,並指定相應的通訊端變為被動串連。listen函數在一般在調用bind之後-調用accept之前調用,它的函數原型是: #include<sys/socket.h>int listen(int sockfd,int backlog)返回:0──成功, -1──失敗參數sockfd
Time of Update: 2018-12-05
①硬中斷是由外來事件引起的因此具有隨機性和突發性;非強制中斷是執行中斷指令產生的,無面外部施加插斷要求訊號,因此中斷的發生不是隨機的而是由程式安排好的。②硬中斷的中斷響應周期,CPU需要發中斷回合訊號(NMI不需要),非強制中斷的中斷響應周期,CPU不需發中斷回合訊號。③硬中斷的中斷號是由中斷控制器提供的(NMI硬中斷中斷號系統指定為02H);非強制中斷的中斷號由指令直接給出,無需使用中斷控制器。④硬中斷是可屏蔽的(NMI硬中斷不可屏蔽),非強制中斷不可屏蔽。非強制中斷是一種推後執行的機制,定時
Time of Update: 2018-12-05
terminal 是一個命令列終端,將啟動系統預設的shell,shell是一個解釋並執行在命令列提示符輸入的命令的程式。啟動 terminal1 在 “面板首頁” 的應用程式搜尋欄中,輸入命令gnome-terminal 選擇 “終端” 應用程式。2 在終端輸入命令 gnome-terminal 進入 “終端”。3通過鍵盤快速鍵(需要設定運行終端的快速鍵,通常設定為Ctrl+Alt+T)進入 “終端”。4通過添加額外的啟動程式方式來實現開機的時候啟動“終端”。面板首頁搜尋 “終端”
Time of Update: 2018-12-05
原始通訊端可以訪問ICMP和ICMP等協議包,可以讀寫核心不處理的IP資料包。可以建立自訂的IP資料包首部。一句話,使用原始通訊端可以 編寫基於IP協議的通訊程式。 1.建立原始通訊端具體格式如下:int sockfd;sockfd = socktet(AF_INET, SOCK_RAW, IPPROTO_ICMP);第一個參數:協議族 AF_INET
Time of Update: 2018-12-05
Linux中記憶體的管理和分配Linux的頁目錄表和頁表是在程式head.s中設定的.head.s程式在物理地址0處存放了一個頁目錄表,緊隨其後的是4個頁表.page.s程式用於實現頁異常中斷處理過程,其中缺頁和頁防寫保護引起的中斷分別調用memory.c的do_no_page()和do_wp_page()函數進行處理.do_no_page()會把需要的頁面從塊裝置中取到記憶體指定位置處.在共用記憶體頁面的情況下,do_wp_page()會複製被寫的頁面,同時取消頁面的共用. 寫時複製機制為了節
Time of Update: 2018-12-05
工作時電腦上只安裝了ubuntu12.04 系統,所以就要安裝常用的軟體 1, apt-get install stardict ,即可安裝,不過這個軟體多官網不再提供字典的更新,需要自己下載字典,:http://abloz.com/huzheng/stardict-dic/PowerWord/2007/ 下載完成後,解壓,最後連檔案夾一起複製到 /usr/share/stardict/dic/ 下即可 2,QQ 的安裝 到網上找一個安裝包:WineQQ2012-2
Time of Update: 2018-12-05
struct 裡面的sizeof的計算如struct exap {short a;double b;char c;double d;int e;}size;sizeof(struct exap)=?
Time of Update: 2018-12-05
字串中存著年月日的資訊,將這些資料解析出來,並利用公式計算對應星期: p = time_str_temp; i=0; while((p != NULL) && (*p != '\0') && (*p != '/')) {
Time of Update: 2018-12-05
半個月的上班體驗,沒怎麼上網玩玩的我的blog,本來計劃把不懂的、不懂到懂了的都記錄下來,養成一個好的習慣。但是這段時間每天就坐在辦公司研究老大給的上萬行代碼,或許是太投入了、也許是沒網,但我知道一旦進入工作就會忘記或者把之前的計劃都打亂了,因為上班有太多的或許、可能。我們做軟體的,也許很快的就會失業去做其他的了……或許不久以後我們就會老去,所以我還是想把我的點點滴滴都記錄下來,我怕以後老了想記錄點啥都沒力氣敲鍵盤了。對於像我一樣剛畢業,又是專科的剛出茅廬的新人來說,這一切都是那麼困難。每天早上
Time of Update: 2018-12-05
其實在很多程式中都會出現類似的情況,因此為了方便,我們在編寫程式時都把常用的標頭檔加上,或者將常用的標頭檔和函數編寫到一個自訂的標頭檔中。警告:隱式聲明與內建函數 ‘memset’ 不相容 ---------->man memsetMEMSET(3) Linux Programmer’s Manual MEMSET(3)NAME memset - fill memory with a constant
Time of Update: 2018-12-05
norflash的架構和nandflash是一樣的,我們要做的也是實現硬體相關層的工作,也就是提供實際的讀寫函數!我們參考核心內建的norflash驅動來看看具體要做哪些設定!參考:drivers/mtd/maps/physmap.cplatform_driver_register(&physmap_flash_driver);static struct platform_driver physmap_flash_driver = { .probe =
Time of Update: 2018-12-05
當Proxy Server 需要 ID & PWD 時,使用 ubuntu 的 apt-get 會失敗,主要原因是 agt 無法輸入 ID & PWD,這種情況可以安裝 CNTLM (另一個 Proxy Server),把企業網路所需的 ID/PWD 設定到 NTLM 裡,而 ubuntu 設定 CNTLM 當 Proxy Server,當NTLM 連外又是透過企業網路的 Proxy ,此時會由 CNTLM 自動提供 ID/PWD 給企業網路的
Time of Update: 2018-12-05
面試的時候遇到這麼一道題,malloc分配0個位元組過後的記憶體情況?我回來用gcc測試了一下,以供參考: 1 #include<stdio.h> 2 #include <stdlib.h> 3 int main() 4 { 5 int *p = NULL; 6 int a[0] ;//定義一個數組測試,數組名相當於一個指標 7 8 printf("sizeof(a) = %d\n",
Time of Update: 2018-12-05
以前只是瞭解了回呼函數,但是實際上沒有用到過的,這段時間做一個動態庫,順便加深了對它的理解。下面的理論知識摘自http://www.cppblog.com/twzheng/archive/2007/05/21/24542.html回呼函數(Callback Function)什麼是回呼函數?