天天看點

《Linux C程式設計從入門到精通》一第1章 Linux基礎1.1 Linux的起源、發展和分類

本節書摘來自異步社群《linux c程式設計從入門到精通》一書中的第1章,第1.1節,作者 宋磊 , 程鋼,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

linux c程式設計從入門到精通

linux是一套免費使用和自由傳播的類unix作業系統,它已發展成為現今世界上最流行的一種作業系統。linux不僅僅能在pc機上運作,随着嵌入式系統的發展,它已經被廣泛地應用于各種場合。

linux從1991年問世到現在已經有20多年的曆史,它從一個架構簡單的系統核心發展到了現在結構完整、功能豐富的多版本作業系統,本小節将介紹其起源發展和分類。

1.1.1 linux的起源、特點和版本号

1.起源

linux 作業系統是一種類unix 作業系統,它最早是由芬蘭人linus torvalds設計的。

在linux誕生之前,為了教學和研究的需要,阿姆斯特丹vrije大學的計算機科學家andrew s. tanwnbaum以unix為藍本開發了minix作為一個教育工具。1991 年初,linus 開始在一台386sx 相容微機上學習minix 作業系統。通過學習,他逐漸不滿足minix 系統的現有性能,并開始醞釀開發一個新的免費作業系統,這很快就在minix新聞討論區得到了響應。

到了1991 年的10 月5 日,linus 在comp.os.minix 新聞討論區上釋出消息,正式向外宣布linux 核心系統(free minix-like kernel sources for 386-at:0.02版)的誕生。1991年11月,linux 0.10版本推出;0.11版本随後在1991年12月推出。當linux非常接近于一種穩定可靠的系統時,linus決定将0.13版本改稱為0.95版本。後來,在1994年3月,終于出現了帶有獨立宣言意味的linux 1.0版本。linux 1.0已經是一個功能完備的作業系統了,其核心寫得緊湊高效,可以充分發揮硬體的性能,在4mb記憶體的80386機器上也表現得非常好。

事實上,linux系統是全世界各地成千上萬志願者設計和實作的,其目的是建立不受任何商品化軟體版權制約的、全世界都能自由使用的類unix作業系統。在linux作業系統的設計過程中,借鑒了很多unix的思想,但源代碼是全部重寫的。目前linux作業系統可以運作在x86、aplpa、mips、power mac、arm等類型的計算機上。從功能上來看,它既可以作為普通的桌面作業系統,也可以作為中小型的網絡作業系統,甚至還可以作為大型網絡的作業系統。

2.特點

linux具有以下特點。

linux是一個免費軟體。linux是作為開放源碼的免費軟體的代表,正是由于這一點,來自全世界的無數程式員參與了linux的修改和編寫工作,程式員可以根據自己的興趣和靈感對其進行改變。這讓linux吸收了無數程式員的精華,不斷壯大。

完全相容posix 1.0标準。posix是基于unix的第一個作業系統國際标準,這使得可以在linux下通過相應的模拟器運作常見的dos、windows程式。

注意:關于posix,将在1.1.5小節中進行介紹。

多使用者、多任務系統。linux支援多使用者,各個使用者對于自己的檔案裝置有自己特殊的權利,保證了各使用者之間互不影響。多任務則是現在作業系統最主要的特點,linux中多個程式可以同時獨立地運作。

良好的使用者界面。linux向使用者提供了兩種界面:文本界面和圖形使用者界面。linux的傳統使用者界面是基于文本的指令行界面,即shell。它既可以聯機使用,又可存在檔案上脫機使用。

linux還為使用者提供了圖形使用者界面。可以利用滑鼠、菜單、視窗、滾動條等對圖形使用者界面進行操作。linux給使用者呈現一個直覺、易操作、互動性強的友好的圖形化界面。linux的圖形使用者界面最近幾年有很大的改進。在圖形使用者界面下,幾乎可以完成全部的工作。

支援多種檔案系統。linux能支援多種檔案系統。目前支援的檔案系統有ext、ext2、ext3、xiafs、isofs、hpfs、msdos、umsdos、 proc、nfs、xfs、sysv、minix、smb、ufs、ncp、vfat、ntfs、affs等。

豐富的網絡功能。完善的内置網絡功能是linux的一大特點。 linux在通信和網絡功能方面優于其他作業系統。其他作業系統不包含如此緊密地和核心結合在一起的連接配接網絡的能力,而且通信和網絡相關功能缺乏靈活性。

可靠的系統安全。linux采取了許多安全技術措施,包括對讀和寫進行權限控制、帶保護的子系統、審計跟蹤、核心授權等,這為網絡多使用者環境中的使用者提供了必要的安全保障。

良好的可移植性。linux是一種可移植的作業系統,能夠在從微型計算機到大型計算機的任何環境中和任何平台上運作。可移植性為運作linux的不同計算機平台與其他任何機器進行準确而有效的通信提供了手段,不需要另外增加特殊的和昂貴的通信接口。

3.版本号

任何一個軟體都有版本号,例如微軟的windows 7,office 2007等,linux也不例外。linux的版本号又分為兩部分:核心(kernel)與發行套件(distribution)版本。

linux的核心是系統的心髒,核心包括了幾百萬行代碼,是運作程式和管理硬體裝置的核心程式。沒有核心,就不能運作程式,但核心不是作業系統的全部。linux初學者常會把核心版本與發行套件版本弄混,實際上核心版本指的是在linus上司下的開發小組開發出的系統核心的版本号。linux的每個核心版本為類似x.y.zz-www的一組數字。其中,x.y為linux的主版本号,zz為次版本号,www代表發行号(注意,它與發行版本号無關)。當核心功能有一個飛躍時,主版本号更新,如kernel 2.2、kernel 2.4、kernel 2.6等。核心增加了少量更新檔時,常常會更新次版本号,如kernle 2.6.15、kernel 2.6.20等。當然還有更複雜的版本号系統,如2.6.20-32等。通常,若y為奇數,表示此版本為測試版,系統會有較多漏洞,主要用途是提供給使用者測試。随着每一次對系統的小的bug的修正,zz會增加。編寫本書時,linux的核心最新穩定版本号是3.0.3(主版本号3.0表明它是可以使用的穩定版本)。

一般而言,一個基本的linux隻是包含了linux核心和gnu軟體的一些基本的系統軟體和實用工具(utilities),這樣一個作業系統僅僅能夠讓那些linux專家完成一些很基本的系統管理任務,若要滿足普通使用者的辦公或基于視窗的應用開發等需求,則還需要在系統中加入gnome、kde等桌面環境以及相應的辦公應用軟體(如office)等。是以一些組織或廠家将linux系統核心與gnu軟體(系統軟體和工具)整合起來,并提供一些安裝界面和系統設定與管理工具,這樣就構成了一個發行套件,例如最常見的ubuntu,fedora等。實際上發行套件就是linux的一個大軟體包而已,通常包括c語言及c++的編譯器、perl腳本解釋程式、shell指令解釋器、圖形使用者界面以及衆多的應用程式等。相對于核心版本,發行套件的版本号随釋出者的不同而不同,與系統核心的版本号是相對獨立的。是以把ubuntu、fedora等直接說成是linux是不确切的,它們是linux的發行版本,更确切地說,應該叫做“以linux為核心的作業系統軟體包”。根據gpl準則,這些發行版本雖然都源自一個核心,并都有自己各自的貢獻,但都沒有自己的版權。linux的各個發行版本,都是使用linus主導開發并釋出的同一個linux核心,是以在核心層不存在相容性問題。至于每個版本都不一樣的感覺,隻是在發行版本的最外層才有所展現,而絕不是本身,也不是核心不統一或不相容。

目前linux的發行版很多,其中比較流行的國外版本有ubuntu、fedora、slackware、debian、opensuse和mandriva等;國内的有紅旗linux和turbolinux等。

例如最新的ubuntu的核心版本表示如下(可以通過在終端中輸入“uname -a”指令來檢視)。

而其發行套件版本号則表示如下(可以通過“sudo lsb_release -a”指令來檢視。需要注意的是,執行這個指令需要超級使用者權限)。

linux既是一個作業系統的名稱,也是一個作業系統核心的名稱。一個完整的linux作業系統由linux核心、shell、檔案系統和實用工具組成,如圖1.1所示。

《Linux C程式設計從入門到精通》一第1章 Linux基礎1.1 Linux的起源、發展和分類

圖1.1 linux的結構

1.linux核心

核心是linux作業系統的心髒,是運作程式和管理磁盤、列印機等硬體裝置的核心程式。

2.shell

shell是系統的使用者界面,提供了一種使用者與核心進行互動操作的接口。它接收使用者輸入的指令并把它送入核心去執行。

實際上shell應該是一個指令解釋器,它解釋由使用者輸入的指令并且把它們送到核心。不僅如此,shell有自己的程式設計語言,用于對指令進行編輯,它允許使用者編寫由shell指令組成的程式。shell程式設計語言具有普通程式設計語言的很多特點,比如它也有循環結構和分支控制結構等,用這種程式設計語言編寫的shell程式與其他應用程式具有同樣的效果。 

除了shell之外,linux同樣提供了像windows那樣的可視的指令輸入界面,即x window的圖形使用者界面(gui)。它提供了很多視窗管理器,其操作就像windows操作一樣,有視窗、圖示和菜單,所有的管理都是通過滑鼠控制。現在比較流行的視窗管理器是kde和gnome。

注意:x window的實質是linux實用工具的一種,請參考“linux的實用工具”小節。

每個linux系統的使用者可以擁有自己的使用者界面或shell,用以滿足他們自己特有的需求。

同linux本身一樣,shell也有多種不同的版本,下面是目前主流的shell。

bourne shell:是貝爾實驗室開發的。

bash:是gnu的bourne again shell,是gnu作業系統上預設的shell。

korn shell:是對bourne shell的發展,大部分内容與bourne shell相容。   

c shell:是sun公司shell的bsd版本。

3.linux的檔案結構

檔案結構是檔案存放在磁盤等儲存設備上的組織方法,其主要展現在對檔案和目錄的組織上。

目錄為檔案管理提供了一個友善而有效的途徑,使用者可以從一個目錄切換到另一個目錄,而且可以設定目錄和檔案的權限,設定檔案的共享程度。在linux系統中,使用者可以設定目錄和檔案的權限,以便允許或拒絕其他人對其進行通路。linux目錄采用多級樹形結構,使用者可以浏覽整個系統,可以進入任何一個已授權進入的目錄,通路其中的檔案。

檔案結構的互相關聯性使共享資料變得容易,幾個使用者可以通路同一個檔案。linux是一個多使用者系統,系統本身的駐留程式存放在以根目錄開始的專用目錄中,有時被指定為系統目錄。

4.linux的實用工具

linux作業系統通常都提供一系列叫做實用工具的應用程式,這些實用工具包括與使用者進行人機互動的x window、電腦、浏覽器等,主要是用于增加系統可用性。和windows把這些工具(主要是x windows)集合到一起不能分離不同,linux的實用工具都可以讓使用者自定義。整體來說,linux的實用工具可分為如下三類。

編輯器。用于編輯檔案,linux常見的編輯器有ed、ex、vi和emacs。ed和ex是行編輯器,vi和emacs是全螢幕編輯器。

過濾器。用于接收資料并過濾資料,linux的過濾器讀取從使用者檔案或其他地方的輸入,檢查和處理資料,然後輸出結果。從這個意義上說,它們過濾了經過它們的資料。linux有不同類型的過濾器,一些過濾器用行編輯指令輸出一個被編輯的檔案。另外一些過濾器是按模式尋找檔案并以這種模式輸出部分資料。還有一些執行字處理操作,檢測一個檔案中的格式,輸出一個格式化的檔案。過濾器的輸入可以是一個檔案,也可以是使用者從鍵盤鍵入的資料,還可以是另一個過濾器的輸出。過濾器可以互相連接配接,是以一個過濾器的輸出可能是另一個過濾器的輸入。在有些情況下,使用者可以編寫自己的過濾器程式。

互動程式。互動程式允許使用者發送資訊或接收來自其他使用者的資訊,互動程式是使用者與機器的資訊接口。linux是一個多使用者系統,它必須和所有使用者保持聯系。資訊可以由系統上的不同使用者發送或接收。資訊的發送有兩種方式,一種方式是與其他使用者一對一地連結進行對話,另一種是一個使用者對多個使用者同時連結進行通信,即所謂廣播式通信。

前面介紹過,linux的關鍵是linux核心,可以将相同核心通過不同的“包裝”生成不同的linux作業系統,這種包裝好的linux作業系統通常被稱為發行版。發行版為許多不同的目的而制作, 包括對不同計算機結構的支援。對一個具體區域或語言的本地化實時應用和嵌入式系統,甚至許多版本故意隻加入免費軟體。目前,正在開發的linux發行版超過300個,最普遍使用的發行版有大約12個。

現在市場上存在的linux發行版種類非常多,但是通常來說可以根據包管理系統或者x window系統來進行分類。

1.根據包管理系統分類

linux作業系統中所安裝的軟體通常都是以包的形式存在的。通常來說,包中除了可執行檔案之外,其中還包括了該包的依賴關系、設定檔案等。

所謂依賴關系,就是指linux軟體運作所必須的其他條件,比如說軟體a在運作的時候需要相應的庫a,如果此時沒有安裝庫,則軟體a就不能正常運作,通常将這種情況稱為軟體a的依賴關系沒有滿足。

由于linux中軟體和庫都非常多,并且一個庫可能涉及多個軟體,是以linux提供了相應的包管理系統來對這些包進行管理,目前市場占有率最高的兩個包管理軟體是rpm包管理軟體和deb包管理軟體。

rpm包管理軟體的全稱是red hat package manager,它是red hat公司設計的一套包管理軟體,其中包括了軟體的可執行程式、相關的配置檔案等。用解壓縮工具解開rpm包即可以看到其中的内容,但是如果安裝rpm包則需要使用相應的包管理工具。

rpm的包管理工具可以提供包的安裝、解除安裝、查詢、打包等功能,在打好的包裡面有可執行程式以及相應的安裝、依賴關系,以下是幾個常用的rpm包操作指令。

rpm -vih file.rpm:安裝一個rpm包。

rpm -e file.rpm:解除安裝一個rpm包。

rpm -qpr file.rpm:檢視rpm包的依賴關系。

rpm -q file:查詢系統已安裝的rpm包。

下面是使用rpm包管理工具的常見發行版。

red hat。是美國redhat公司的産品,是相當成功的一個linux發行版本,也是目前使用最多的linux發行版本。red hat最早由bob young和marc ewing在1995年建立。原來的red hat版本早已停止技術支援,目前red hat的linux分為兩個系列,其中一個是由red hat公司提供收費技術支援和更新的red hat enterprise linux系列;另一個是由社群開發的免費的fedora core系列。red hat因其易于安裝而聞名,在很大程度上減輕了使用者安裝程式的負擔,其中redhat提供的圖形界面安裝方式與windows系統的軟體安裝方式非常類似,這對于那些windows使用者而言,幾乎可以像安裝windows系統一樣輕松安裝red hat發行套件。

紅旗linux。是由北京中科紅旗軟體技術有限公司開發的一系列linux發行版,包括桌面版、工作站版、資料中心伺服器版、ha叢集版和紅旗嵌入式linux等産品。

和rpm包管理系統相對應的是deb包管理系統,deb的包也是由源代碼包和二進制包組成的,其詳細說明如下。

源代碼包。包括一個描述源代碼包的 .dsc 檔案,一個包含 gzip-tar 歸檔壓縮格式的未經修改源碼的 .orig.tar.gz 檔案, 一個包含對源代碼作debian特有修改的 .diff.gz 檔案。可以使用 dpkg-source 打包和解壓 debian 源碼文檔。詳見聯機手冊。

二進制包。以.deb擴充名來表示,這些檔案通常稱為deb檔案,其中包含可執行檔案、文檔、配置檔案和版權資訊及其他一些東西。可以使用debian的dpkg工具解包(安裝)。但除去版權資訊(和 changelog.debian 檔案)外,二進制包也可以是空的,這種軟體包作為過渡包或關聯包(也稱虛拟包),它們唯一的作用是用于滿足依賴性。

一般而言,使用者隻和二進制包打交道,隻有在某些特殊情況下才會求助于源代碼包,debian軟體包命名遵循下列約定。

deb包管理系統同樣提供了相應的指令,用于管理操作。常用的指令說明如下。

apt指令:用于從源清單(可以是cd、網絡等)下載下傳deb包。

dpkg指令:通過資料庫來對系統中的軟體進行管理,這個資料庫位于/var/lib/dpkg目錄中。

aptitude指令:提供圖形界面對軟體包進行管理,功能較為強大,甚至可以通過終端遠端登入運作,如圖1.2所示。

《Linux C程式設計從入門到精通》一第1章 Linux基礎1.1 Linux的起源、發展和分類

圖1.2 aptitude指令的運作界面

synaptic:新立得軟體包管理器,這是一個運作在x window環境中的包管理軟體,使用者可以進行圖形化的操作。

gdebi和gdebi-gtk:gdebi是一個指令行的包管理軟體,gdebi-gtk是其對應的圖形化版本。

dselect:在終端運作的一個圖形化軟體包管理工具,其功能實作類似synaptic,但是能在終端中運作,如圖1.3所示。

采用deb包管理系統的發行版最常見的是debian和ubuntu。

debian是一款能安裝在計算機上使用的作業系統。作業系統就是能讓計算機工作 的一系列基本程式和實用工具。由于 debian 采用了 linux kernel (linux作業系統的核心),但是大部分基礎的作業系統工具都來自于gnu工程, 是以又稱為 gnu/linux。debian gnu/linux 附帶了超過 29 000個軟體包,這些預先編譯好的軟體被包裝成一種良好的格式,以便于在機器上進行安裝。讓debian 支援其他核心的工作也正在進行,最主要的就是 hurd。hurd 是一組在微核心(例如 mach)上運作的提供各種不同功能的守護程序。

《Linux C程式設計從入門到精通》一第1章 Linux基礎1.1 Linux的起源、發展和分類

圖1.3 dselect的運作界面

ubuntu是一個以桌面應用為主的linux作業系統,其名稱來自非洲南部祖魯語或豪薩語的“ubuntu”一詞(譯為吾幫托或烏班圖),意思是“人性”、“我的存在是因為大家的存在”,是非洲傳統的一種價值觀,類似華人社會的“仁愛”思想。ubuntu基于debian發行版和gnome桌面環境。它與debian的不同在于它每6個月會釋出一個新版本。ubuntu的目标在于為一般使用者提供一個最新的、同時又相當穩定的主要由免費軟體建構而成的作業系統。ubuntu具有龐大的社群力量,使用者可以友善地從社群獲得幫助。

注意:實際上還存在其他的包管理系統,在此不再過多叙述,有興趣的讀者可以自行去查閱相應的書籍。

2.根據x window系統進行分類

x window即x windows圖形使用者接口,是一種計算機軟體系統和網絡協定,它提供了一個基礎的圖形使用者界面(gui)、豐富的輸入裝置驅動,并且能提供網絡連接配接,其中軟體的編寫使用了廣義的指令集。它建立了一個硬體抽象層,允許裝置獨立性和重用方案的任何計算機上實作。

linux的核心并不像windows系統那樣直接內建了使用者能夠使用的圖形化界面,而x window即是實作這種功能的應用軟體,可以分為kde和gnome兩大類。

kde是k桌面環境(kool desktop environment)的縮寫,這是一種著名的運作于 linux、unix 以及freebsd 等作業系統上的自由圖形工作環境,整個系統采用的都是由 trolltech 公司所開發的 qt 程式庫(現在屬于諾基亞公司),具有以下特點。

提供了一個美觀的現代化桌面。

提供了一個具有完整的網絡透明性的桌面。

提供了一個友善的內建幫助系統,它提供了對kde桌面及其應用程式幫助的一緻化通路途徑。

所有的kde應用程式都具有統一的視覺觀感。

具有标準化的菜單、工具欄、鍵盤綁定、顔色樣式等。

國際化支援,kde已擁有60餘種語言的翻譯。

集中化組織的對話框系統,由具體的桌面配置來運作。

大量優秀的kde應用程式。

使用kde作為x window系統的常見linux發行版包括kubuntu、fedora、mint、opensuse、mandriva、debian等。

gnome是另外一種能在linux作業系統上運作的x window應用軟體,是gnu計劃的一部分。它是一種讓使用者容易操作和設定電腦環境的工具,目标是基于免費軟體,為unix或者類unix作業系統構造一個功能完善、操作簡單以及界面友好的桌面環境,是gnu計劃的正式桌面。gnome可以運作在包括gnu/linux(通常叫做linux)、solaris、hp-ux、bsd和apple's darwin系統上。gnome 擁有很多強大的特性,如高品質的平滑文本渲染、首個國際化和可用性支援, 并且包括對反向文本的支援(注: 有些國家的文字是從右向左排版的)。

采用gnome作為預設x window的linux發行版并不太多,但是在絕大部分發行版上都可以自行安裝,圖1.4是一個使用gnome作為x window應用界面的ubuntu的運作界面。

注意:通常來說,x window隻是作為linux作業系統人機互動的一個應用軟體,使用者可以根據自己的興趣愛好等實際情況來自行安裝對應的x window。x window和其他應用軟體在理論上關系不大,但是在實際應用中,由于圖形庫等依賴關系,一些軟體在gnome上支援得比kde上好或者差等情況都可能出現,最典型的例子就是在第2章中介紹的vim和emacs。

3.本書所選擇linux發行版

本書選擇發行版本号為12.04、核心版本号為3.2.0-27、x window為gnome 2的ubuntu系統來介紹linux下的c語言程式設計。在實際應用中,由于本書所涉及的大部分知識都隻與linux核心和gcc庫相關,是以對于絕大多數發行版而言都是适用的。

《Linux C程式設計從入門到精通》一第1章 Linux基礎1.1 Linux的起源、發展和分類

圖1.4 使用gnome的ubuntu作業系統

注意:本書并不涉及linux的圖形程式設計以及其他的應用軟體等深層次的應用。

在linux中,有幾個術語是linux下的c語言程式員必須了解的,如gnu、gpl、posix和iso c。

1.gnu

gnu是“gnu's not unix”的縮寫,其發音為“guh-noo”,原意為非洲牛羚。gnu最開始由richard stallman建立于1983年,目的是為了實作一個符合unix系統接口标準、軟體豐富且可以自由使用的軟體庫,是以gnu計劃可以分别開發不同的作業系統部件。gnu計劃采用了部分當時已經可自由使用的軟體,例如tex排版系統和x window視窗系統等,同時也開發了大批其他的免費軟體。

1985年richard stallman又創立了免費軟體基金會(fsf,free software foundation)其目的是為gnu計劃提供技術、法律以及财政支援。盡管gnu計劃大部分時候是由個人自願無償貢獻的,但fsf有時還是會聘請程式員幫助編寫。當gnu計劃開始逐漸獲得成功時,一些商業公司開始介入開發和技術支援,其中最著名的就是之後被red hat兼并的cygnus solutions。

到1990年,gnu計劃已經開發出的軟體包括了一個功能強大的編輯器emacs、gcc(gnu compiler collection,gnu編譯器集合,也是本書所使用的編譯器)以及大部分unix系統的程式庫和工具,唯一依然沒有完成的重要元件就是作業系統的核心。 

gnu 包含以下3個協定條款。

gpl:gnu通用公共許可證(gnu general public license)。

lgpl:gnu較寬松公共許可證 (gnu lesser general public license),也被稱為 gnu library general public license (gnu 庫通用公共許可證)。

gfdl :gnu自由文檔許可證(gnu free documentation license )。

2.gpl

gpl并非由免費軟體基金會所發表,亦非使用gnu通用公共授權的軟體的法定釋出條款,隻有gnu通用公共授權英文原文的版本才具有此等效力。

gpl要求在釋出軟體的同時必須釋出源代碼,并且允許任何使用者能夠以源代碼的形式将軟體複制或者釋出給别的使用者。如果一個軟體使用了遵循gpl的任何軟體的全部或者一部分,則該軟體也必須遵循gpl。

需要注意的是,gpl并不是免費軟體的代名詞,其支援商業化的收費軟體。

3.posix

posix是可移植的unix作業系統接口(portable operating system interface of unix)的縮寫,其由ieee(institute of electrical and electronic engineering)所開發,由ansi和iso标準化。

posix的最初開發目的是為了提高 unix 環境下應用程式的可移植性,但是随着其發展,posix現在并不局限于 unix環境,許多其他的作業系統,包括linux和windows,也支援posix的部分或者全部。

4.iso c

c語言是由dennis m. ritchie在1973年設計和實作的,并且在1978年通過《the c programming language》一書将c語言推向全世界。

美國國家标準局(ansi)在1988年10月頒布ansi标準x3.159-1989(即ansi c标準)),随後國際标準(iso)在1989年左右采納 ansi c标準,并且将其定義為iso/iec 9899:1990,這就是iso c。

随着計算機技術的不斷發展,iso c的版本号也在随之發展,到目前為止最新的iso c版本号是iso/iec 9899:1999,也就是c99。

繼續閱讀