linuxc常用文件處理函數(shù)

linuxc常用文件處理函數(shù)

ID:8798870

大?。?0.00 KB

頁(yè)數(shù):25頁(yè)

時(shí)間:2018-04-08

linuxc常用文件處理函數(shù)_第1頁(yè)
linuxc常用文件處理函數(shù)_第2頁(yè)
linuxc常用文件處理函數(shù)_第3頁(yè)
linuxc常用文件處理函數(shù)_第4頁(yè)
linuxc常用文件處理函數(shù)_第5頁(yè)
資源描述:

《linuxc常用文件處理函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。

1、本文轉(zhuǎn)載于:[url]http://www.91linux.com/html/article/program/cpp/20071203/8774.html[/url]有點(diǎn)多阿,但很豐富。各位Linux愛好者:  你好!本人有幸在坊間得到一名為“LinuxC函數(shù)參考”的文本文件,并在此基礎(chǔ)重新排版并制成html文件以方便廣大愛好者閱讀,我感到無(wú)比的榮幸。在此多謝各位的鼎力支持,以及日益完善此文件,希望有朝一日能成為L(zhǎng)inux編程愛好者必備的參考文件。在此再次多謝編寫“LinuxC函數(shù)參考”的朋友?! ÷暶鳎罕救瞬粨碛形恼滤袡?quán)。本人會(huì)對(duì)本文件文章內(nèi)排版出現(xiàn)的錯(cuò)誤或遺漏內(nèi)容以及日后提出

2、的相關(guān)請(qǐng)求作出最大限度修改,有問(wèn)題可e-mail:pennyhot@21cn.com,別炸我的郵箱:-)PennyHot 2003.06.06 ?access(判斷是否具有存取文件的權(quán)限)相關(guān)函數(shù)?stat,open,chmod,chown,setuid,setgid表頭文件?#include定義函數(shù)?intaccess(constchar*pathname,intmode);函數(shù)說(shuō)明?access()會(huì)檢查是否可以讀/寫某一已存在的文件。參數(shù)mode有幾種情況組合,R_OK,W_OK,X_OK和F_OK。R_OK,W_OK與X_OK用來(lái)檢查文件是否具有讀取、寫

3、入和執(zhí)行的權(quán)限。F_OK則是用來(lái)判斷該文件是否存在。由于access()只作權(quán)限的核查,并不理會(huì)文件形態(tài)或文件內(nèi)容,因此,如果一目錄表示為“可寫入”,表示可以在該目錄中建立新文件等操作,而非意味此目錄可以被當(dāng)做文件處理。例如,你會(huì)發(fā)現(xiàn)DOS的文件都具有“可執(zhí)行”權(quán)限,但用execve()執(zhí)行時(shí)則會(huì)失敗。返回值?若所有欲查核的權(quán)限都通過(guò)了檢查則返回0值,表示成功,只要有一權(quán)限被禁止則返回-1。錯(cuò)誤代碼?EACCESS參數(shù)pathname所指定的文件不符合所要求測(cè)試的權(quán)限。EROFS欲測(cè)試寫入權(quán)限的文件存在于只讀文件系統(tǒng)內(nèi)。EFAULT參數(shù)pathname指針超出可存取內(nèi)存空間。EIN

4、VAL參數(shù)mode不正確。ENAMETOOLONG參數(shù)pathname太長(zhǎng)。ENOTDIR參數(shù)pathname為一目錄。ENOMEM核心內(nèi)存不足ELOOP參數(shù)pathname有過(guò)多符號(hào)連接問(wèn)題。EIOI/O存取錯(cuò)誤。附加說(shuō)明?使用access()作用戶認(rèn)證方面的判斷要特別小心,例如在access()后再做open()的空文件可能會(huì)造成系統(tǒng)安全上的問(wèn)題。范例?/*判斷是否允許讀取/etc/passwd*/#includeintmain(){if(access(“/etc/passwd”,R_OK)==0)printf(“/etc/passwdcanberead

5、”);}執(zhí)行?/etc/passwdcanberead ?alphasort(依字母順序排序目錄結(jié)構(gòu))相關(guān)函數(shù)?scandir,qsort表頭文件?#include定義函數(shù)?intalphasort(conststructdirent**a,conststructdirent**b);函數(shù)說(shuō)明?alphasort()為scandir()最后調(diào)用qsort()函數(shù)時(shí)傳給qsort()作為判斷的函數(shù),詳細(xì)說(shuō)明請(qǐng)參考scandir()及qsort()。返回值?參考qsort()。范例?/*讀取/目錄下所有的目錄結(jié)構(gòu),并依字母順序排列*/main(){structdir

6、ent**namelist;inti,total;total=scandir(“/”,&namelist,0,alphasort);if(total<0)perror(“scandir”);else{for(i=0;id_name);printf(“total=%d”,total);}}執(zhí)行?...gnome.gnome_privateErrorLogWeblogbinbootdevdoscdosdetchomeliblost+foundmiscmntoptprocrootsbintmpusrvarto

7、tal=24chdir(改變當(dāng)前的工作(目錄)相關(guān)函數(shù)?getcwd,chroot表頭文件?#include定義函數(shù)?intchdir(constchar*path);函數(shù)說(shuō)明?chdir()用來(lái)將當(dāng)前的工作目錄改變成以參數(shù)path所指的目錄。返回值?執(zhí)行成功則返回0,失敗返回-1,errno為錯(cuò)誤代碼。范例?#includemain(){chdir(“/tmp”);printf(“currentworkingdirectory

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

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

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