UNIX環(huán)境C語言編程

UNIX環(huán)境C語言編程

ID:39469450

大小:123.50 KB

頁數(shù):39頁

時間:2019-07-04

UNIX環(huán)境C語言編程_第1頁
UNIX環(huán)境C語言編程_第2頁
UNIX環(huán)境C語言編程_第3頁
UNIX環(huán)境C語言編程_第4頁
UNIX環(huán)境C語言編程_第5頁
資源描述:

《UNIX環(huán)境C語言編程》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、第一章概述1.1UNIX的版本???UNIX操作系統(tǒng)是貝爾實驗室于六十年代末用C語言研制開發(fā)的。經(jīng)過幾十年的發(fā)展,已經(jīng)成為流行于從大型機、小型機到工作站甚至微機等多種平臺的操作系統(tǒng)。UNIX的成功同時也推動了C語言的普及。本教材的目的是講解UNIX系統(tǒng)下的C程序設(shè)計,使C程序員快速掌握UNIX系統(tǒng)下的編程開發(fā)。作者在進行UNIX編程開發(fā)的實踐過程中,深感實例的重要性,一個簡短的C語言實例往往勝過長篇累牘的文字說明,當(dāng)然了,文字說明也是必不可少的。本教材將本著實例優(yōu)先的原則,使您能夠?qū)NIX編程開發(fā)快速入門。????U

2、NIX的版本不統(tǒng)一是出了名的,從UNIX的發(fā)展歷史來看,主要有兩大流派:AT&T的UNIX系統(tǒng)V版本和加州大學(xué)伯克利分校的BSD版本,在此基礎(chǔ)上,各家UNIX廠商均開發(fā)了各自的UNIX操作系統(tǒng)。如:工作站廠商中有HP的hpux、SUN的solaris、SGI的irix、IBM的AIX等,小型機有VAX上的Ultrix,微機上有SCOUNIX、微軟的Xenix以及隨著Internet而風(fēng)靡全球的Linux等。由于WindowsNT的異軍突起,對UNIX的市場形成巨大的威脅,各大UNIX廠商不得不聯(lián)合起來,在工作站市場上,

3、統(tǒng)一以系統(tǒng)V版作為標(biāo)準(zhǔn),加入BSD版本中的一些優(yōu)點,支持統(tǒng)一的CDE(CommonDesktopEnvironment)窗口環(huán)境,以與WindowsNT進行對抗。1.2UNIX編程環(huán)境???UNIX操作系統(tǒng)通過Shell程序?qū)崿F(xiàn)系統(tǒng)與用戶的交互,在Shell提示符下,用戶鍵入UNIX命令,即可得到操作系統(tǒng)的輸出結(jié)果。BSD系統(tǒng)的常用Shell是CShell,缺省提示符是"%",系統(tǒng)V的常用Shell是BourneShell(現(xiàn)在多為KornShell),缺省提示符是"$",有關(guān)Shell的編程,我們在后面的章節(jié)中進行介

4、紹。??UNIX上的標(biāo)準(zhǔn)編譯器是cc。在Shell提示符下(以CShell為例)鍵入下列命令:$cc-ohellohello.c即將C文件hello.c編譯為可執(zhí)行文件hello。在編譯多個文件生成一個可執(zhí)行文件時,UNIX提供命令make。用戶需要針對多個C文件,按照一定的格式編寫一個叫做Makefile的文本文件。下面是SGI上的一個Makefile的例子: CC=ccCFLAGS=$(DEBUG)-cckr-I$(INC)/X11-DSYSVDEBUG=-gINC=/usr/includeLDFLAGS=-lXe

5、xt-lXm-lXt-lX11-lPW-lcOBJS=initx.owindowx.oTGTS=showxwinall::$(TGTS)showxwin:$(OBJS)$(CC)-o$@$(OBJS)$(CFLAGS)$(LDFLAGS)大寫字母的字串是一些宏,CC是編譯器的名字、CFLAGS定義cc的編譯開關(guān)、DEBUG是調(diào)試宏、INC是頭文件所在目錄、LDFLAGS定義了編譯連接庫、OBJ定義了目標(biāo)文件名、TGTS定義了可執(zhí)行文件名。在Shell提示符下直接鍵入:$make即可將Makefile中指定的所有C文件進

6、行編譯并生成可執(zhí)行文件。1.3UNIX編程中的基本概念???在討論UNIX編程開發(fā)前,首先需要闡明系統(tǒng)調(diào)用和庫函數(shù)這兩個概念。一個系統(tǒng)調(diào)用指一個需要操作系統(tǒng)代表用戶程序來執(zhí)行某些任務(wù)的請求。例如:read是一個系統(tǒng)調(diào)用,它請求操作系統(tǒng)存儲在一個磁盤設(shè)備(或其他設(shè)備)上的數(shù)據(jù)去填充一個緩沖區(qū)。如果任何人在他們想執(zhí)行任務(wù)的時候都能隨便訪問設(shè)備,那么后果將是不可預(yù)測的。所以,這種服務(wù)必須請求操作系統(tǒng)來做,它(經(jīng)常是透明地)記錄所有處理每個設(shè)備的請求。而一個庫函數(shù),并不經(jīng)常需要操作系統(tǒng)來執(zhí)行其任務(wù)。例如數(shù)學(xué)庫函數(shù)中的sin()

7、,cos()等,這些計算只需要簡單地對一個有限序列求和,所以并不需要操作系統(tǒng)干預(yù)。在UNIX操作系統(tǒng)中,有一個常用的命令man,可用來查閱命令、庫函數(shù)和系統(tǒng)調(diào)用等的具體使用方法。傳統(tǒng)Unix聯(lián)機幫助手冊的分節(jié)法為:1用戶級命令(User-levelcommands)2系統(tǒng)調(diào)用(Systemcalls)3庫函數(shù)(Libraryfunctions)4設(shè)備及驅(qū)動程序(Devicesanddevicedrivers)5文件格式(Fileformats)6游戲(Games)7雜項(Variousmiscellaneousstuf

8、f-macropackagesetc.)8系統(tǒng)維護及操作命令(Systemmaintenanceandoperationcommands)第二章標(biāo)準(zhǔn)輸入/輸出庫2.1概述本章介紹UNIX的標(biāo)準(zhǔn)輸入/輸出庫,UNIX提供一些庫函數(shù)完成高級輸入/輸出,為程序員提供了三方面的主要功能:·自動開辟緩沖區(qū)。即使一次讀或?qū)懙臄?shù)據(jù)只有幾個字節(jié),

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。