Linux操作系統(tǒng) 第7章 Linux環(huán)境編程.ppt

Linux操作系統(tǒng) 第7章 Linux環(huán)境編程.ppt

ID:51587984

大?。?09.00 KB

頁數(shù):65頁

時間:2020-03-24

Linux操作系統(tǒng) 第7章 Linux環(huán)境編程.ppt_第1頁
Linux操作系統(tǒng) 第7章 Linux環(huán)境編程.ppt_第2頁
Linux操作系統(tǒng) 第7章 Linux環(huán)境編程.ppt_第3頁
Linux操作系統(tǒng) 第7章 Linux環(huán)境編程.ppt_第4頁
Linux操作系統(tǒng) 第7章 Linux環(huán)境編程.ppt_第5頁
資源描述:

《Linux操作系統(tǒng) 第7章 Linux環(huán)境編程.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、第7章Linux環(huán)境編程主要內(nèi)容系統(tǒng)調(diào)用和庫函數(shù)簡介文件操作進(jìn)程管理和同步進(jìn)程通信內(nèi)存管理7.1系統(tǒng)調(diào)用和庫函數(shù)7.1.1系統(tǒng)調(diào)用系統(tǒng)調(diào)用是操作系統(tǒng)提供的、與用戶程序之間的接口,也就是操作系統(tǒng)提供給程序員的接口從感覺上系統(tǒng)調(diào)用類似于過程調(diào)用,都由程序代碼構(gòu)成,使用方式相同兩者有實質(zhì)差別:過程調(diào)用只能在用戶態(tài)下運(yùn)行,不能進(jìn)入核心態(tài);而系統(tǒng)調(diào)用可以實現(xiàn)從用戶態(tài)到核心態(tài)的轉(zhuǎn)變。系統(tǒng)調(diào)用可大致分為五個類別:進(jìn)程控制、文件管理、設(shè)備管理、信息維護(hù)和通信7.1.2庫函數(shù)它們本身并不屬于操作系統(tǒng)的內(nèi)核部分庫函數(shù)可以分為下面六大類:①文件管理②狀態(tài)信息③文件修改④程序設(shè)計語言的支持⑤程序裝入和執(zhí)行⑥通信7

2、.1.3調(diào)用方式例如,creat系統(tǒng)調(diào)用可以創(chuàng)建一個新文件,其函數(shù)原型說明如下:#include#include#includeintopen(constchar*path,intoflags);不同的系統(tǒng)調(diào)用所需要的頭文件(又稱前導(dǎo)文件)是不同的。7.2文件操作7.2.1有關(guān)文件操作的系統(tǒng)調(diào)用常用的有關(guān)文件操作的系統(tǒng)調(diào)用有:creat,open,close,read,write,lseek,link,unlink,mkdir,rmdir,chdir,chmod等例如:#include#inclu

3、de#includeintcreat(constchar*pathname,mode_tmode);#include#include#includeintopen(constchar*path,intoflags);intopen(constchar*path,intoflags,mode_tmode);7.2.2應(yīng)用示例/*rdwr.c-Thereadandwritesystemcalls*/#include#include#incl

4、ude#include#include#includeintmain(void){intfd1,fd2,fd3,nbytes;intflags=O_CREAT

5、O_TRUNC

6、O_WRONLY;charbuf[10];if((fd1=open("rdwr.c",O_RDONLY,0644))<0){perror("openrdwr.c");exit(EXIT_FAILURE);}if((fd2=open("/dev/null",O_WRONLY))<0){perror("open/dev/null");exit

7、(EXIT_FAILURE);}if((fd3=open("/tmp/foo.bar",flags,0644))<0){perror("open/tmp/foo.bar");close(fd1);close(fd2);exit(EXIT_FAILURE);}while((nbytes=read(fd1,buf,10))>0){if(write(fd2,buf,10)<0)perror("write/dev/null");if(write(fd3,buf,nbytes)<0)perror("write/tmp/foo.bar");write(STDOUT_FILENO,buf,10);}cl

8、ose(fd1);close(fd2);close(fd3);exit(EXIT_SUCCESS);}7.3進(jìn)程控制7.3.1有關(guān)進(jìn)程控制的系統(tǒng)調(diào)用常用的有關(guān)進(jìn)程控制的系統(tǒng)調(diào)用有:fork,exec,wait,exit,getpid,sleep,nice等例如:#include#includepid_tfork(void);#include#includepid_tgetpid(void);pid_tgetppid(void);7.3.2應(yīng)用示例/*proc1.c演示有關(guān)進(jìn)程操作*/#include

9、#include#include#includeintmain(intargc,char**argv){pid_tpid,old_ppid,new_ppid;pid_tchild,parent;parent=getpid();/*獲得本進(jìn)程的PID*/if((child=fork())<0){fprintf(stderr,"%s:forko

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

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

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