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