Time of Update: 2018-12-03
我們都應該知道,進階語言的函數調用過程中,有“棧”這麼一個概念,被調用函數的局部變數是存放在棧中的,函數調用的參數也是通過棧傳遞的。那麼,調用函數是怎麼把各種資料壓入棧中,被調用函數又是怎麼對棧進行操作以擷取必要的資料呢?函數調用發生完畢之後,誰又負責清理這個棧?這就用到了函數調用棧規範!函數調用棧規範是指編譯器的一中“約定”,他規定了調用者如何傳遞參數,被調用者如何擷取參數,調用完成後怎麼清理棧,怎麼傳遞傳回值等。編譯器在編譯器的時候遵循這種規範,從而使程式正確的執行。對於不同的編譯器,不同
Time of Update: 2018-12-04
http://blog.chinaunix.net/u2/66903/showart_1902477.html 1、關於tr 通過使用 tr,您可以非常容易地實現 sed 的許多最準系統。您可以將 tr 看作為 sed 的(極其)簡化的變體:它可以用一個字元來替換另一個字元,或者可以完全除去一些字元。您也可以用它來除去重複字元。這就是所有 tr 所能夠做的。
Time of Update: 2018-12-03
1.訪問codesourcery官方網站下載最新的ARM交叉編譯工具鏈,當前最新版本是arm-2009q3:http://www.codesourcery.com/sgpp/lite/arm/portal/package5383/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz22.解壓$ tar -jxvf
Time of Update: 2018-12-03
linux下安裝virtualbox的一般方法1. 下載安裝檔案,我們就下載所有linux下都可以用的安裝檔案 下載連結:http://dlc.sun.com.edgesuite.net/virtualbox/4.1.0/VirtualBox-4.1.0-73009-Linux_x86.run2. 安裝virtualbox 命令列裡進入VirtualBox-4.1.0-73009-Linux_x86.run所在的檔案夾,執行命令:sh
Time of Update: 2018-12-03
基於OS的電子類產品通常會把kernel燒到norfash裡,因為可以按位元組進行讀寫,但是norflash的價格要比nand flash的價格貴,而且nand flash是基於塊讀寫的,如一次性讀寫512位元組(block).如果是MLC的nand flash是按頁讀取的,一頁差不多有4K byte, 那如何基於nand flash啟動內容呢? 這裡的實現步驟如下:1. 目前部分nand flash controller晶片會預設把nand
Time of Update: 2018-12-03
實現web server時,通過建立一個線程池來並發處理用戶端的http請求,代碼如下: for(i = 0; i < THREAD_POOL_SIZE; i++){pthread_create(&thread_pool[i], NULL, (void*)&worker, (void*)i);pthread_detach(thread_pool[i]);} 線程並發處理如下:void* worker(int n){struct server_struct *request;
Time of Update: 2018-12-03
Step1:vi /etc/sysconfig/network-scripts/ifcfg-p4p1修改ip資訊,修改或加入:BOOTPROTO="static" # static or DHCPIPADDR=172.18.66.77PREFIX=24 #子網ONBOOT="yes" Step2:vi /etc/sysconfig/network定義主機名稱,加入網關出口:HOSTNAME=linux_hostGATEWAY=172.18.66.254Step3: vi /etc/resolv.
Time of Update: 2018-12-03
主機:Windows 7旗艦版,VMware7.1.2,Fedora9編譯環境:arm-linux-gcc 4.4.3Linux版本:linux-2.6.32.2busybox版本:busybox-1.19.4目標板:友善之臂micro2440編譯使用核心模組的方法:編寫一個簡單的Linux核心模組Hello World,hello.c內容如下: #include <linux/init.h>#include <linux/module.h>MODULE_LICENSE(
Time of Update: 2018-12-03
#include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <netinet/in.h>#include <net/if.h>#include <net/if_arp.h>#include
Time of Update: 2018-12-03
1.訊號的產生 Linux下的訊號可以類比於DOS下的INT或者是Windows下的事件。 訊號事件的發生有兩個來源:一個是硬體的原因(比如按下了鍵盤),一個是軟體的原因(比如使用系統函數或者是命令發出訊號)。 List all signal: #> man 7 signal2. 三種異常中斷訊號 2.1 SIGSEGV (Segment fault) 意味著指標所對應的地址是無效地址,沒有實體記憶體對應該地址 2.2 SIGTERM
Time of Update: 2018-12-03
轉自http://hi.baidu.com/mychaoyue2011/blog/item/6df45895c3d63243d0135e01.html4 Linux核心調度策略與演算法分析 c = -1000;list_for_each(tmp, &runqueue_head) { /* 從runqueue中選擇一個最佳進程來運行 */ p = list_entry(tmp, struct task_struct, run_list); if (
Time of Update: 2018-12-03
本文詳細的記錄了在 Linux 安裝Fortran編譯器的過程 1. 在瀏覽器中開啟 http://gcc.gnu.org/wiki/GFortranBinaries2. 下載Linux的2進位版本,我的Linux是Fedora16, x86-64,所以我選擇的是http://gcc.gnu.org/wiki/GFortranBinaries下的 64-bit AMD-compatible processors (x86_64, AMD64,Intel64, em64t) 2.1
Time of Update: 2018-12-03
之前一直有這樣的需求,當時問到,也沒搜到方法,現在竟然既問到了,也搜到了,哎,世事真是不能強求啊! 在linux核心調試中,經常用到的列印函數呼叫堆疊的方法非常簡單,只需在需要查看堆棧的函數中加入:dump_stack();或 __backtrace();即可。 dump_stack()在~/kernel/ lib/Dump_stack.c中定義 void dump_stack(void){ printk(KERN_NOTICE "This architecture does not
Time of Update: 2018-12-03
linux下/dev/loop常用於製作檔案系統鏡像檔案rootfs.img,以便下載到核心中掛載;http://zh.wikipedia.org/wiki//dev/loop我們日常接觸到比較多的鏡像檔案*.iso,都是用資料檔案來儲存實際塊裝置上的資料;首先必須明確,想光碟片,硬碟,磁碟片這樣的裝置上隱藏檔需要特定的檔案系統,上面有大量的檔案系統特定資訊用於管理上面的檔案,這些資訊和檔案資料一起組成了檔案系統的全部,所以鏡像檔案就是這些內容的總和。鏡像檔案做出來之後,可以放在存放裝置上作為一
Time of Update: 2018-12-03
1.解壓tar.bz2tar jxvf android-ndk-r5c-linux-x86.tar.bz22.linux IP可以訪問網域名稱無法訪問vi /etc/resolv.conf添加, nameserver 202.106.46.1513.linux 安裝deb檔案sudo dpkg -i ibus-sogoupycc_0.2.5-1_i386.debibus-sogoupycc-data_0.2.5-1_all.deb4.UBUNTU清理記憶體(sudo su下執行)echo 1 &
Time of Update: 2018-12-03
我們先寫一個簡單的指令碼,執行以後再解釋各個變數的意義 # touch variable# vi variable 指令碼內容如下: #!/bin/shecho "number:$#"echo "scname:$0"echo "first :$1"echo "second:$2"echo "argume:$@"儲存退出 賦予指令碼執行許可權 # chmod +x variable 執行指令碼 # ./variable aa bbnumber:2scname:./variablefirst:
Time of Update: 2018-12-04
#include <unistd.h> /*檔案預先處理,包含chmod函數庫*/#include <sys/stat.h> /*檔案預先處理,包含chmod函數庫*/#include <stdio.h>int main(int argc,char *argv[]){ struct stat buf; /*檔案的各種屬性,如檔案類型,許可權,以及建立時間,大小等其它屬性*/ if(argc!=2) { printf("
Time of Update: 2018-12-04
PATH的值是一系列目錄,當您運行一個程式時,Linux在這些目錄下進行搜尋,用以下命令可以設定PATH的值。 直接用export命令在PATH中加入/data/test/hellow.sh指令碼,使該指令碼能在其他目錄下執行。[root@localhost /]# cd /data/test[root@localhost test]# ll總用量 4-rwx------ 1 root root 32 10月 25 13:02 hellow.sh[root@localhost test]#
Time of Update: 2018-12-04
Linux下清除history記錄在/etc/profile中將HISTSIZE=1000改為0或1執行rm -rf .bash_history清空historyhistory -c執行命令時不要把命令名稱寫入history檔案,放入buffer中,退出時再一併寫入,也可以調用history -w命令更新history檔案 (網上好多說法都是history -c + history-w,但實際操作僅僅使用這兩個命令只能清除目前狀態下的history記錄,重新登入後又可以看到記錄)
Time of Update: 2018-12-04
top命令是Linux下常用的效能分析工具,能夠即時顯示系統中各個進程的資源佔用狀況,類似於Windows的工作管理員。下面詳細介紹它的使用方法。top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombieCpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0