linux高級(jí)編程筆計(jì).doc

linux高級(jí)編程筆計(jì).doc

ID:55631743

大小:1.38 MB

頁數(shù):27頁

時(shí)間:2020-05-21

linux高級(jí)編程筆計(jì).doc_第1頁
linux高級(jí)編程筆計(jì).doc_第2頁
linux高級(jí)編程筆計(jì).doc_第3頁
linux高級(jí)編程筆計(jì).doc_第4頁
linux高級(jí)編程筆計(jì).doc_第5頁
資源描述:

《linux高級(jí)編程筆計(jì).doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、Linux應(yīng)用編程一、IO2標(biāo)準(zhǔn)IO口庫:2打開流:2標(biāo)準(zhǔn)IO庫讀寫:3標(biāo)準(zhǔn)I/O口庫-定位3文件IO4一、unix輸入輸出4二、文件IO操作4二、靜態(tài)庫和動(dòng)態(tài)庫6三、進(jìn)程操作8系統(tǒng)進(jìn)程查看:8進(jìn)程類型:9進(jìn)程運(yùn)行狀態(tài):9應(yīng)用程序進(jìn)程操作10創(chuàng)建進(jìn)程:10替換進(jìn)程:10進(jìn)程阻塞:10進(jìn)程結(jié)束10進(jìn)程的一生11進(jìn)程間通信11網(wǎng)絡(luò)編程17UDP21TCP21一、IOMan:1conmmand2syscall3functionSorceinsight可以更新符號(hào)表,方便編程Posix標(biāo)準(zhǔn)接口windowslinux應(yīng)用層與內(nèi)核層的標(biāo)準(zhǔn)

2、接口。在posix之上還可能有其它封裝如glibc.標(biāo)準(zhǔn)IO口庫:處理緩存分配、以優(yōu)化執(zhí)行I/O,Strace加可執(zhí)行文件可跟蹤程序從應(yīng)用層到硬件的調(diào)用過程Stream流:文本流:在流中處理的數(shù)據(jù)以字符出現(xiàn)。二進(jìn)制制流:流中處理的是二進(jìn)制的序列。緩沖文件系統(tǒng):(高級(jí)磁盤IO)目的:心量減少使用read/write的使用定義:文件讀寫都經(jīng)過內(nèi)存中介。分類:全緩存,行緩存,不緩存非級(jí)沖文件系統(tǒng):(低級(jí)磁盤IO)打開流:*fopen(constchar*path,constchar*mode。。。)釋放:fclose*freopen(

3、constchar*restrictpathname,constcharrestricttype,file*restrictfp)標(biāo)準(zhǔn)IO庫讀寫:feof()判斷文件是否結(jié)束。EOF/feof()EOF是glibc中文件結(jié)束的返回標(biāo)志為32位-1。讀一個(gè)字符:Getc(FILE*steam)Fgetc()Getchar()若成功則為下一個(gè)字符,若已到文件尾端則為EOF寫一個(gè)字符:Fputc(‘a(chǎn)’,*)每次輸入一行:Char*gets(char*s)Char*fgets(char*s,intsize.FILE*stream)Fe

4、gets()安全的讀取到一個(gè)合法的字符串。最多讀取到size-1個(gè),s[size-1]一定為0每次輸出一行:Puts:一定是一行,‘、0’結(jié)束符來終址函數(shù),轉(zhuǎn)義成換行字符。Fputs:內(nèi)存搬移:Fwrite()Fread()若文件大于4G則在編譯時(shí)打開__USE_FILE_OFFSET64宏fpos_t標(biāo)準(zhǔn)I/O口庫-定位ftellfseek(),SEEK_SET/SEEK_CUR/SEEK_ENDrewind(*stream)設(shè)定文件位置為開始fgetpos(FILE*stream,longoffset,intwhence)f

5、setpos()臨時(shí)文件char*tmpnam(char*s)FILE*tmpfile(void)linux下EOF為Ctrl+D文件IO一、unix輸入輸出1、文件描述符a)順序分配的非負(fù)整數(shù)b)內(nèi)核用以標(biāo)識(shí)一個(gè)特定進(jìn)程正在訪問的文件c)其它資源的訪問標(biāo)識(shí)2、3、不用綬存的I/Oa)通過文件描述符進(jìn)行訪問4、標(biāo)準(zhǔn)IO二、文件IO操作open()在內(nèi)核中注冊一個(gè)設(shè)備。intopen(constchar*pathname,intflags,mode_tmode);可以打開設(shè)備文件,只能創(chuàng)建普通文件close()關(guān)閉表述符文件屬性獲

6、取fstat/chmod/chown目錄mkdir/rmdir/chdir/opendir/readdir目錄沒有執(zhí)行權(quán)限,我們對(duì)該目錄不能操作,進(jìn)入,刪除刪階除,修改刪除文件必須是該文件的所在文件夾具有執(zhí)行,可寫權(quán)限。chown改變所有者truncate()文件截短opendir()條開目錄文件readdir()mkdir()已知文件名和路徑,獲取文件大小的方式:stat(filename,&stat)file_sizeopen();RET=read()openret=lseek(fd,o,SEEK_END)硬鏈接軟鏈接區(qū)別硬

7、鏈接:硬盤中目錄對(duì)應(yīng)的內(nèi)容,其另目錄就是硬鏈接link()unlink()軟鏈接:相當(dāng)于windos的快捷方式symlink()unlink()二、靜態(tài)庫和動(dòng)態(tài)庫庫:(鏈接權(quán)限)可執(zhí)行文件:(執(zhí)行)都是二進(jìn)制的bin。靜態(tài)庫:arcrs*.o動(dòng)態(tài)庫:gcc-shared-fPIC-o*.so*.o共同點(diǎn):都是二進(jìn)制文件的打包不同點(diǎn):鏈接成可執(zhí)行文件的時(shí)候,作用范圍不同靜態(tài)庫:鏈接階段,會(huì)跟我們其余的*.o文件一起生成可執(zhí)行文件。gcc-obuild*.o*.a.build具備*.a中所有二進(jìn)制的代碼。動(dòng)態(tài)庫:鏈接階段,只是起到一

8、個(gè)標(biāo)簽的作用,不會(huì)跟其余*.o文件共同生成可執(zhí)行程序build,這個(gè)build里沒有so文件的二進(jìn)制代碼,在運(yùn)行期間由操作系統(tǒng)來調(diào)度相關(guān)的so文件。gcc-obuild*.o*.so默認(rèn)下GCC是按動(dòng)態(tài)方式編譯文件編譯時(shí)加–static即可實(shí)現(xiàn)靜態(tài)庫如何創(chuàng)建靜態(tài)

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

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

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(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ò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。