LINUX環(huán)境高級編程-第二講文件.ppt

LINUX環(huán)境高級編程-第二講文件.ppt

ID:49479270

大?。?.86 MB

頁數(shù):255頁

時(shí)間:2020-02-25

LINUX環(huán)境高級編程-第二講文件.ppt_第1頁
LINUX環(huán)境高級編程-第二講文件.ppt_第2頁
LINUX環(huán)境高級編程-第二講文件.ppt_第3頁
LINUX環(huán)境高級編程-第二講文件.ppt_第4頁
LINUX環(huán)境高級編程-第二講文件.ppt_第5頁
資源描述:

《LINUX環(huán)境高級編程-第二講文件.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、Linux環(huán)境高級編程第二講文件的操作第二講文件的操作文件I/O(第三章)文件和目錄(第四章)第二講文件的操作文件I/O(第三章)文件和目錄(第四章)文件I/O文件的基本操作(打開、定位、讀寫、關(guān)閉)I/O效率文件共享其他重要I/O函數(shù)文件I/O文件的基本操作(打開、定位、讀寫、關(guān)閉)I/O效率文件共享其他重要I/O函數(shù)文件操作基本順序打開open創(chuàng)建creat定位lseek讀read寫write關(guān)閉closeopen函數(shù)用于打開或者創(chuàng)建一個(gè)文件函數(shù)原型#includeintopen(constchar*pathname,intofl

2、ag,...)參數(shù)第一個(gè)參數(shù)pathname:要打開或者創(chuàng)建的文件名第二個(gè)參數(shù)oflag:用于指定文件打開模式、標(biāo)志等信息。open函數(shù)第二個(gè)參數(shù)oflag:Linux頭文件已經(jīng)為文件打開模式、標(biāo)志等定義了若干的宏oflag需要指定這些宏宏定義在/usr/include/bits/fcntl.h中在該頭文件中,只讀打開標(biāo)志被定義為:#defineO_RDONLY00open函數(shù)oflag:文件打開模式標(biāo)志以下三個(gè)標(biāo)志必須指定一個(gè)且只能指定一個(gè)O_RDONLY:只讀打開O_WRONLY:只寫打開O_RDWR:讀寫打開其他文件標(biāo)志下面的標(biāo)志是可以選擇的,可

3、通過C語言的或運(yùn)算與文件打開標(biāo)志進(jìn)行組合open函數(shù)oflag其他文件標(biāo)志:O_APPEND:每次寫的數(shù)據(jù)都添加到文件尾O_TRUNC:若此文件存在,并以讀寫或只寫打開,則文件長度為0O_CREAT:若文件不存在,則創(chuàng)建該文件。此時(shí),open函數(shù)需要第三個(gè)參數(shù),用于指定該文件的訪問權(quán)限位(后面描述)O_EXCL:若同時(shí)指定了O_CREAT標(biāo)志,而文件已經(jīng)存在,則會出錯(cuò)??捎糜跍y試文件是否存在open函數(shù)返回值intopen(constchar*pathname,intoflag,…)返回值:整型數(shù)據(jù)成功時(shí),返回文件描述符出錯(cuò)時(shí),返回-1open函數(shù)返回

4、值intopen(constchar*pathname,intoflag,…)返回值:整型數(shù)據(jù)成功時(shí),返回文件描述符出錯(cuò)時(shí),返回-1什么是文件描述符?open函數(shù)返回值intopen(constchar*pathname,intoflag,…)返回值:整型數(shù)據(jù)成功時(shí),返回文件描述符出錯(cuò)時(shí),返回-1什么是文件描述符?已打開文件的索引open函數(shù)返回值intopen(constchar*pathname,intoflag,…)返回值:整型數(shù)據(jù)成功時(shí),返回文件描述符出錯(cuò)時(shí),返回-1什么是文件描述符?已打開文件的索引通過索引找到已打開文件文件描述符文件描述符的

5、本質(zhì)是什么?通過文件描述符怎么樣能找到需訪問的文件?需要了解進(jìn)程打開文件時(shí),內(nèi)核創(chuàng)建或涉及到的一系列數(shù)據(jù)結(jié)構(gòu)進(jìn)程打開文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)task_struct.........files.......................files_structfd[0]fd[1]fd[2]fd[3]...........files_structfilef_posf_dentry文件標(biāo)志............dentryd_inode索引節(jié)點(diǎn)號文件各信息inode..............進(jìn)程打開文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)task_struct.........進(jìn)

6、程控制塊PCB進(jìn)程打開文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)task_struct.........files.........structtask_struct{.............structfiles_struct*files;.............};進(jìn)程打開文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)task_struct.........files...................files_structfiles_struct該結(jié)構(gòu)體包含了:進(jìn)程已打開文件表進(jìn)程打開文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)task_struct.........files...................

7、....files_structfd[0]fd[1]fd[2]fd[3]files_struct..............structfile**fd;進(jìn)程打開文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)task_struct.........files.......................files_structfd[0]fd[1]fd[2]fd[3]...........files_structfile..............文件對象:代表一個(gè)已打開的文件進(jìn)程打開文件的內(nèi)核數(shù)據(jù)結(jié)構(gòu)task_struct.........files...............

8、........files_structfd[0]fd[1]fd[2]fd[3].......

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

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

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