專利名稱:一種基于Linux系統(tǒng)的編程方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于Linux系統(tǒng)的編程方法,尤其是涉及一種充分利用 Linux系統(tǒng)命令進(jìn)4亍編程的方法。
背景技術(shù):
Linux系統(tǒng)中的Shell腳本程序功能強大,編程簡單高效,好多系統(tǒng)功能都 是用Shell腳本實現(xiàn)的。此外Linux本身也有很多功能強大的工具,比如awk、 grep、 sed等,它們在文字處理、查找,從眾多信息中提取有用信息方面有很強 的功能,這些工具也可以在Shell腳本中使用,這些腳本簡潔小巧,但功能強 大。同樣的功能如果用純C語言實現(xiàn),則編程難度大,調(diào)試時間長,而且通用 性不好。
但C語言是系統(tǒng)編程的通用語言, 一個應(yīng)用軟件是不能用Shell編程來實 現(xiàn)的,只能靠C語言來實現(xiàn)。如果把兩者接合,用C語言編寫整個應(yīng)用軟件, 但在實現(xiàn)某些功能時用Shell編程來實現(xiàn),然后再由C語言來調(diào)用,從而高效 簡潔完成應(yīng)用軟件中的某部分功能,那么應(yīng)用程序的編寫將會降低很多難度和 復(fù)雜度。
現(xiàn)有4支術(shù)中,未有揭示基于Linux系統(tǒng)的混合shell腳本和C語言的編程 方法,尤其在應(yīng)用在家電領(lǐng)域,特別是應(yīng)用于電視機或者機頂盒上的軟件中, 未有類似技術(shù)的揭示。
發(fā)明內(nèi)容
針對上述因素,本發(fā)明的目的在于提供一種基于Linux系統(tǒng)的編程方法, 能夠結(jié)合Linux系統(tǒng)自身的編程工具和第一語言,且在第二語言編程過程中被 高效快速調(diào)用的編程方法。
本發(fā)明的技術(shù)方案是, 一種基于Linux系統(tǒng)的編程方法,其特征在于,釆用第一語言編程第一程序,采用第二語言編程第二程序,所述第一程序作為所 述第二程序的子程序,在第二程序的運行過程中供其調(diào)用,并且可循環(huán)多次供 第二程序調(diào)用。
在本發(fā)明一個較佳實施例中,所述的第一程序為功能程序,所述的第二程 序為應(yīng)用程序。
在本發(fā)明一個較佳實施例中,所述的第一語言為shell腳本。 在本發(fā)明一個較佳實施例中,所述的第二語言為C語言。 在本發(fā)明一個較佳實施例中,所述的第二程序通過system函數(shù)來調(diào)用第一 程序。
在本發(fā)明一個較佳實施例中,所述的shell腳本在進(jìn)行第一程序的編程時, 可以采用Linux系統(tǒng)的編程工具。
在本發(fā)明一個較zf圭實施例中,所述的Linux系統(tǒng)的編程工具為Linux Shel 1。
在本發(fā)明一個較佳實施例中,所述的第一程序是字符串,所述的第二程序 在調(diào)用所述的第一程序時,所述的字符串做為system函數(shù)的參數(shù)來調(diào)用。
在本發(fā)明一個較佳實施例中,如果第一程序?qū)崿F(xiàn)的是文檔處理功能,則可 以把處理結(jié)果輸出至一個文件,第二語言打開輸出文件,直接讀取處理后的結(jié) 果用在第二語言編程中需要的地方。
在本發(fā)明一個較佳實施例中,所述的應(yīng)用程序主要應(yīng)用在電視機和/或機頂。
本發(fā)明中,通過兩種程序的調(diào)用和結(jié)合,采用不同的編程語言,發(fā)揮編程 語言各自的優(yōu)勢并實現(xiàn)互補,從而降低了應(yīng)用軟件的設(shè)計難度和復(fù)雜度,使整 個系統(tǒng)簡潔高效。
附圖1為本發(fā)明實施例的編程方法流程示意圖。
具體實施例方式
4下面結(jié)合附圖對本發(fā)明的較佳實施例進(jìn)行詳細(xì)闡述,以使本發(fā)明的優(yōu)點和 特征能更易于被本領(lǐng)域技術(shù)人員理解,從而對本發(fā)明的保護(hù)范圍做出更為清楚 明確的界定。
本發(fā)明揭示了在Linux系統(tǒng)中C語言與Shell腳本語言混合編程以快速簡潔 地實現(xiàn)某些應(yīng)用功能的方法,本發(fā)明揭示的編程方法,可以應(yīng)用在電禍^幾、才幾 頂盒、手機、PDA或者其他通信設(shè)備和系統(tǒng)設(shè)備上。
參見圖1所示,在本發(fā)明的較佳實施例中,編程方法主要包括,Sl采用第 一語言編程第一程序,S2采用第二語言編程第二程序,S3第二程序在運行過程 中可調(diào)用第一程序。
由于Linux系統(tǒng)中的Shell腳本程序編程簡單,但功能強大高效,它是直 接調(diào)用Linux中的各種命令來實現(xiàn)功能,因此可實現(xiàn)的功能豐富多樣,能完成 各種各樣的任務(wù)。
故在本發(fā)明實施例中,第一程序采用shell腳本,通過shell腳本編程的 shell文件,可以實現(xiàn)強大的功能,而且快速,文件小。
it匕夕卜Linux《々Shell扭卩本命令文"f牛中還纟至常用至U Linux系纟充的awk、 grep、 sed三種工具,在處理固定格式的信息,在查找某些內(nèi)容,在對文字進(jìn)行替換、 修改追加、刪除時功能非常強大。
Linux系統(tǒng)中的awk語言類似C語言,它允許用戶進(jìn)行編程來高效地處理有 固定格式的文檔,比如文檔有固定的幾列,每列都用空格分開。用戶可以用它 編程來單獨處理每一行中每一列,可以把自己的需要哪幾列單憑挑選出來,可 以重新組織自己感興趣的每一列。因此它適合從固定格式的文檔中挑選出用戶 感興趣的信息。awk可以寫在Shell腳本中,形成一個腳本命令文件,也可以單 獨寫一條可執(zhí)行的語句來執(zhí)行。
Linux系統(tǒng)中的grep和sed工具在查找和文檔編輯方面有4艮強大的功能。 grep允許用戶以特定模式從單個或者多個文件中查找感興趣的內(nèi)容。sed則允 許用戶對一個或多個文檔按指定的模塊進(jìn)行文字替換、追求、刪除、修改等功 能。這兩種工具也可以寫在Shell腳本中形成腳本命令文件,或者單獨寫成一條執(zhí)行命令來4丸4亍。
在本發(fā)明實施例中,第二語言采用c語言,通過c語言來匯編應(yīng)用程序,
而shell腳本只是做為功能程序,供應(yīng)用程序調(diào)用。
在C語言中如果要實現(xiàn)用Linux命令就能實現(xiàn)的功能時,就可以編寫成一 個腳本命令文件,在命令文件調(diào)用Linux的命令來實現(xiàn)相應(yīng)功能,然后在C語 言中用system函數(shù)調(diào)用該腳本命令文件即可實現(xiàn)相應(yīng)功能。如果命令很短,則 可直接寫成字符串做為system函數(shù)的參數(shù)來調(diào)用即可。
另外在C語言編程中如果要實現(xiàn)從眾多格式固定的信息中挑選出感興趣的 信息,或者從文檔中查找自己感興趣的內(nèi)容,或者要進(jìn)行文字處理時,就可以 先用awk、 grep、 sed三種工具相應(yīng)的工具編寫成腳本命令文件,然后在C語言 中用system函數(shù)直接調(diào)用已經(jīng)寫好的腳本命令文件,把輸出結(jié)果輸出到一個文 件中去,然后C語言再打開輸出文件,讀出相應(yīng)內(nèi)容即可。如果腳本命令文件 中命令很短小,則可以直接把該命令做為system函數(shù)的參數(shù)調(diào)用即可。
綜上所述,本發(fā)明實施例中的主要技術(shù)特點及步驟如下
編寫Shell腳本命令文件,腳本命令文件中用相應(yīng)的工具(比如awk、 grep、 sed),或者Linux命令完成一些功能。如果腳本中命令纟艮少則可以直接編寫成 可執(zhí)行命令字符串存;^文在C語言的源文件中。
在C語言中用system函數(shù)調(diào)用該腳本命令文件,或者直接調(diào)用命令字符串 來完成相應(yīng)的功能,把字符串當(dāng)做system函數(shù)的參數(shù)調(diào)用。如果是文檔處理的, 則可以把處理結(jié)果輸出到 一個文件中。
如果有輸出文件的則用C語言打開輸出文件,直接讀取處理后的結(jié)杲用在C 語言編程中其它需要的地方。
本發(fā)明實施例中,第一語言采用shell腳本,第二語言采用C語言,但實 際應(yīng)用中,第二語言可以用C++, Pascal等,第一語言可以采用Linux下的命令 或者一些編程工具,因此本發(fā)明并不限于實施例中所述的編程語言。
本發(fā)明專利把Shell腳本命令與C語言編程結(jié)合起來,用Shell腳本命令 文件來完成在C語言中一些實現(xiàn)起來比較困難的功能,從而降低了應(yīng)用軟件的設(shè)計難度和復(fù)雜度,使整個系統(tǒng)簡潔高效。
以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于 此,任何熟悉本領(lǐng)域的技術(shù)人員在本發(fā)明所揭露的技術(shù)范圍內(nèi),可不經(jīng)過創(chuàng)造 性勞動想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明 的保護(hù)范圍應(yīng)該以權(quán)利要求書所限定的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種基于Linux系統(tǒng)的編程方法,其特征在于,采用第一語言編程第一程序,采用第二語言編程第二程序,所述第一程序作為所述第二程序的子程序,在第二程序的運行過程中供其調(diào)用,并且可循環(huán)多次供第二程序調(diào)用。
2、 根據(jù)權(quán)利要求1所述的基于Linux系統(tǒng)的編程方法,其特征在于,所述的第一程序為功能程序,所述的第二程序為應(yīng)用程序。
3、 根據(jù)權(quán)利要求l所述的基于Linux系統(tǒng)的編程方法,其特征在于,所述的第一語言為shell腳本。
4、 根據(jù)權(quán)利要求l所述的基于Linux系統(tǒng)的編程方法,其特征在于,所述的第二語言為C語言。
5、 根據(jù)權(quán)利要求1~4之一所述的基于Linux系統(tǒng)的編程方法,其特征在于,所述的第二程序通過system函數(shù)來調(diào)用第一程序。
6、 根據(jù)權(quán)利要求5所述的基于Linux系統(tǒng)的編程方法,其特征在于,所述的shell腳本在進(jìn)4亍第一程序的編程時,可以采用Linux系統(tǒng)的編程工具。
7、 根據(jù)權(quán)利要求6所述的基于Linux系統(tǒng)的編程方法,其特征在于,所述的Linux系統(tǒng)的編禾呈工具為Linux Shell。
8、 根據(jù)權(quán)利要求7所述的基于Linux系統(tǒng)的編程方法,其特征在于,所述的第一程序是字符串,所述的第二程序在調(diào)用所述的第一程序時,所述的字符串做為system函數(shù)的參數(shù)來調(diào)用。
9、 根據(jù)權(quán)利要求8所述的基于Linux系統(tǒng)的編程方法,其特征在于,如果第一程序?qū)崿F(xiàn)的是文檔處理功能,則可以把處理結(jié)果輸出至一個文件,第二語言打開輸出文件,直接讀取處理后的結(jié)果用在第二語言編程中需要的地方。
10、 根據(jù)權(quán)利要求8所述的基于Linux系統(tǒng)的編程方法,其特征在于,所述的應(yīng)用程序主要應(yīng)用在電視機和/或機頂盒上。
全文摘要
一種基于Linux系統(tǒng)的編程方法,采用第一語言匯編第一程序,采用第二語言匯編第二程序,所述的第二程序可調(diào)用所述的第一程序;通過第一程序和第二程序的結(jié)合并采用不用的編程語言,從而降低了應(yīng)用軟件的設(shè)計難度和復(fù)雜度,使整個系統(tǒng)簡潔高效。
文檔編號G06F9/44GK101639778SQ20091014475
公開日2010年2月3日 申請日期2009年8月31日 優(yōu)先權(quán)日2009年8月31日
發(fā)明者段寶山 申請人:青島海信電器股份有限公司