Time of Update: 2018-12-06
前言:目前正在忙於ARM平台的Linux應用程式的開發(其實是剛剛起步學習啦)。底層的東西不用考慮了,開發板子提供了NAND Bootloader,和Linux 2.6的源碼,而且都編譯好了。自己編譯的bootloader可以用,但是Linux編譯後,檔案很大,暫且就用人家編譯的系統,先專心寫應用程式
Time of Update: 2018-12-06
一. 概述 系統調用是應用程式與核心互動的一種方式。系統調用作為一種介面,通過系統調用,應用程式能夠進入作業系統核心,從而使用核心提供的各種資源,比如操作硬體,開關中斷,改變特權模式等等。首先,系統調用是一個非強制中斷,既然是中斷那麼一般就具有中斷號和中斷處理常式兩個屬性,Linux使用0x80號中斷作為系統調用的入口,而中斷處理常式的地址放在中斷向量表裡。 二. 過程 基於linux-2.6.38,以read()系統調用函數為例進行說明。
Time of Update: 2018-12-06
在前三篇裡學習了Linux平台裝置和驅動的一些知識後,這篇就說一下驅動程式是怎麼自動產生裝置檔案。 寫過Linux驅動的可能都知道,Linux裡有一類裝置叫做混雜裝置,而且還可以發現註冊這一類裝置後是不用手動去產生裝置檔案的。好吧,由這類裝置的註冊函數入手,從而去瞭解是怎樣自動產生裝置檔案的。看看混雜裝置註冊函數在/drivers/char/misc.c裡的定義: 1 int misc_register(struct miscdevice * misc) 2 {
Time of Update: 2018-12-06
或許習慣於用進階語言編程的大部分同學都會忽略了函數調用的具體過程是怎樣的,如果想知道這個過程就不得不從彙編入手,但組合語言又晦澀難懂。在這裡謹以一個簡單的例子說說我對函數調用過程的學習心得。 先上C語言寫的代碼: 1 #include<stdio.h> 2 3 4 unsigned int test(int a,int b) 5 { 6 int c,d; 7 c = a; 8 d = b; 9 return c;10 }
Time of Update: 2018-12-06
最近需要用到網路編程中的廣播程式,在網上找了下,親測可用。用戶端: 1 #include <stdio.h> 2 #include <arpa/inet.h> 3 #include <string.h> 4 #include <sys/ioctl.h> 5 #include <net/if.h> 6 #include <unistd.h> 7 8 9 int main(void)10 {11
Time of Update: 2018-12-06
在/etc目錄下,做如下操作: (1)cd /etc vi exports /home *(sync,rw,no_root_squash) /opt *(sync,rw,no_root_squash) (2)重啟nfs service nfs restart 注意:防火牆的設定。如出現System Error: No route to
Time of Update: 2018-12-06
source命令用法:source FileName作用:在當前bash環境下讀取並執行FileName中的命令。註:該命令通常用命令“.”來替代。使用範例:source filename 或 . filename(中間有空格) source命令(從 C Shell 而來)是bash shell的內建命令。source命令也稱為“點命令”,也就是一個點符號(.);點命令,就是個點符號(.),(從Bourne Shell而來)是source的另一名稱。Source命令主要於運行指令碼。
Time of Update: 2018-12-06
使用文法:export [-p][變數名稱]=[變數設定值] 參數說明: [-p] 列出所有的shell賦予程式的環境變數。 命令功能:顯示或設定環境變數。 使用範例: export PATH=/mnt/updata/mips-4.3/bin:$PATH #這句話是設定系統變數,後面的":$PATH"是在系統變數後面增加一項。 export
Time of Update: 2018-12-06
這裡說的是在VMware虛擬機器下來實現在windows與Linux下共用一個檔案夾。下面來說明一下是如何?的:1.安裝VMware.Workstation.2.安裝Fedora10。3.完成前兩步後,開啟VMware->工具列—>虛擬機器->選擇 安裝Vmware工具.4. 開啟VMware->工具列—>虛擬機器—>可行動裝置—>CD-ROM—>設定—>使用ISO鏡像檔案(選擇vmware安裝目錄中linux.iso)5. mkdir
Time of Update: 2018-12-06
groups 查看當前登入使用者的組內成員groups gliethttp 查看gliethttp使用者所在的組,以及組內成員whoami 查看當前登入使用者名稱/etc/group檔案包含所有組/etc/shadow和/etc/passwd系統存在的所有使用者名稱1、/etc/group
Time of Update: 2018-12-06
轉自:http://www.ezloo.com/2008/01/linux_zip_unzip.html zip命令的基本用法是:zip [參數] [檔案1] [檔案2] 簡單的例子: 把本目錄下的test檔案打包成test.zip檔案:zip test.zip test/* ,如果在檔案中用絕對的路徑,那麼在壓縮檔中也是絕對路徑。就是說,如果你 zip test.zip /home/test/* ,那麼在壓縮檔中也是這樣的層次關係。 參數列表: -a
Time of Update: 2018-12-06
這是我的第一篇部落格,把我最近做的一個東西和大家分享一下,非常高興和大家討論,CSDN是個臥虎藏龍之處,好多特別好的文章,我這裡見醜了~~~ 下面的文字比較多啊,主要是加入了很多自己的感慨啊,感歎啊啥的,其實我覺得已經是罪簡單的方法了,我基本上把我遇到的問題全部羅列了,大家可以參考一下~其實很多問題都是在走彎路,我希望後面的人更順暢一點吧~ 目的:將OpenCV2.0或者2.1+Qt移植到ARM上目標板Tiny6410PC系統VM1.2+Fedora9(用這個吧,方便)1.
Time of Update: 2018-12-06
上文介紹了Linux下線程同步對象——互斥量,本文介紹另外Linux下同步對象——讀寫鎖。 如果多個線程同時讀資源,則不會發生競爭關係,也不會出現資源的不一致性,所以讀資源的時候不需要同步對象保護。但是如果寫某個資源的時候,必須要進行同步保護,否則將會出現不一致性。在上文的互斥量中,不管讀寫都加鎖,這樣對於讀資源操作非常多,但寫資源非常少的情況下,效率會比較低。Linux提供了讀寫鎖來解決這種情況下的效率問題。
Time of Update: 2018-12-06
grep是linux中很常用的一個命令,主要功能就是進行字串資料的對比,能使用Regex搜尋文本,並將符合使用者需求的字串列印出來。grep全稱是Global Regular Expression Print,表示全域Regex版本,它的使用許可權是所有使用者。grep在資料中尋找出一個字串時,是以整行為單位來進行資料選取的。(1)命令格式 grep [cinvs] 'patten'
Time of Update: 2018-12-06
#include <stdio.h>int main(){ char tmpname[L_tmpnam]; char *filename; FILE *tmpfp; filename=tmpnam(tmpname); printf("tmp file is : %s\n",filename); tmpfp=tmpfile(); if(tmpfp)
Time of Update: 2018-12-06
#include <stdio.h>#include <termios.h>int main(){ char s;// FILE *in;// FILE *out; struct termios initial_settings,new_settings;// in=fopen("/dev/tty","r");// out=fopen("/dev/tty","w");
Time of Update: 2018-12-06
#include <sys/utsname.h>#include <unistd.h>#include <stdio.h>int main(){ char computer[256]; struct utsname uts; if(gethostname(computer,256)!=0 || uname(&uts)<0) { exit(1); }
Time of Update: 2018-12-06
#include <stdlib.h>#include <stdio.h>#include <string.h>int main(int argc,char **argv){ char *var,*value; if(argc==1||argc>3) { exit(1); } var=argv[1]; value=getenv(var);
Time of Update: 2018-12-06
Linux and Mac build issues 孫文濤 2008-07-16(1) Windows上面的lib和dll對應Linux下面的lib**.a 和lib**.so,而產生這個*.a和*.so的檔案,即目標檔案為*.o 和*.osso 為Shared Object的簡寫。今天我在做跨平台的build時碰到的問題就是用SCons的SharedLibrary的builder,可是在前面的編譯階段卻產生的是*.o的檔案,
Time of Update: 2018-12-06
Linux下訪問Windows的方法 1. 通過VNCViewer, 上RealVNC的網站上download一個Linux版的VNCViewer, 然後就可以訪問安裝了VNCServer的Windows主機。有幾個注意的地方:(1) 可以在Advanced選項中設定user name,然後可以(2) 功能鍵是F8. 2. 通過rdesktop訪問Windows,這個類似Windows上面的RDP (mstsc /f ***) 有幾個注意的地方:(1) 全屏的按鍵是Ctrl + Atl +