亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 5.txt

?? 這是用C寫的中文分詞程序
?? TXT
字號(hào):
5.文件處理
當(dāng)我們要處理文件時(shí),我們必需先調(diào)用apr_file_open()函數(shù),這兒是它的原型聲明:
/* 摘自apr_file_io.h */
APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **newf, const char *fname,
                                        apr_int32_t flag, apr_fileperms_t perm,
                                        apr_pool_t *pool);
第一個(gè)參數(shù)是結(jié)果參數(shù),其類型為apr_file_t**,即通過調(diào)用apr_file_open()來創(chuàng)建一個(gè)apr_file_t對(duì)象。第二個(gè)參數(shù)是文件路徑,第三個(gè)參數(shù)是位標(biāo)志,在apr_file_io.h文件中定義。第四個(gè)參數(shù)是對(duì)新創(chuàng)建的文件設(shè)置的訪問權(quán)限,其值是也是位標(biāo)志,在apr_file_io.h中定義。例如,如果你想創(chuàng)建一個(gè)訪問權(quán)限為0600的文件,只有文件擁有者可以讀寫它,那么你可以指定其值為APR_UREAD|APR_UWRITE。在通常情況下,文件訪問權(quán)限的值你可以設(shè)置為APR_OS_DEFAULT。第五個(gè)參數(shù)是要使用的內(nèi)存池,毋庸置疑,你得使用apr_pool_create()函數(shù)去事先創(chuàng)建它。

打開文件后,我們就可以使用其他的API函數(shù)來處理文件了,這些API函數(shù)可以在apr_file_io.h文件中找到。基本的有apr_file_read()和apr_file_write()函數(shù),如你所想,apr_file_read()使我們可以從文件中讀取一些東西,而apr_file_write()允許我們向文件寫入一些東西,其函數(shù)原型聲明如下:
/* 摘自apr_file_io.h */
APR_DECLARE(apr_status_t) apr_file_read(apr_file_t *thefile, void *buf,
                                        apr_size_t *nbytes);
APR_DECLARE(apr_status_t) apr_file_write(apr_file_t *thefile, const void *buf,
                                         apr_size_t *nbytes);

這兩個(gè)函數(shù)的第三個(gè)參數(shù)均為輸入輸出參數(shù),意思是說,在調(diào)用函數(shù)時(shí)我們指定它的值為輸入值的長度,而在函數(shù)返回時(shí)它的值為結(jié)果的長度。具體而言,apr_file_read()返回的是讀取字節(jié)的長度,apr_file_write()返回的是寫入字節(jié)的長度。這兒有一個(gè)例子:

/* 關(guān)于apr_file_write()的偽代碼 */
strcpy(outbuf, "123456789");
apr_size_t outlen = strlen(outbuf);
rv = apr_file_write(fp, outbuf, &outlen);
printf("apr_file_write() rv = %d, nbytes = %d\n", rv, outlen);

這個(gè)例子中,在調(diào)用apr_file_write()之前,變量'outlen'的值是9,通過使用&outlen這樣的形式作為第三個(gè)參數(shù),告訴
apr_file_write()函數(shù)可寫的長度是9,當(dāng)apr_file_write()函數(shù)返回時(shí),'outlen'的值變?yōu)閷?shí)際寫入的長度。如果是本地文件,它的值常常是9,理論上,它的值可以變小(例如當(dāng)磁盤滿的時(shí)候)。

我們只能調(diào)用apr_file_close()函數(shù)去關(guān)閉文件,除此之外,也可以通過銷毀apr_file_open()函數(shù)相關(guān)的內(nèi)存池來實(shí)現(xiàn)文件的關(guān)閉。我比較喜歡顯式地調(diào)用apr_file_close()函數(shù)去關(guān)閉文件,不過這僅僅是我的意見。

注:在不同的libapr版本之間存在著一些源程序的兼容性問題,apr_file_open()的第三個(gè)參數(shù)自libapr 1.1.0版本這后加上了APR_FOPEN_前綴,但是之前的版本卻沒有這個(gè)前綴。可以使用APR_FOPEN_CREATE代替APR_CREATE,請(qǐng)查閱你使用的libapr版本的apr_file_io.h文件。同樣地,apr_file_open()的第四個(gè)參數(shù)自libapr 1.1.0版本之后,添加了APR_FPROT_前綴。

注:這兒還有一個(gè)兼容性的問題是關(guān)于文件路徑分割符的,Unix(POSIX)系統(tǒng)使用斜線('/'),MS-Windows使用反斜線('\')作為分割符。如果你要寫一個(gè)能在Unix和MS-Windows系統(tǒng)上都能運(yùn)行的應(yīng)用程序,我推薦你統(tǒng)一地在文件路徑中使用斜線('/')作為分割符,因?yàn)镸S-Windows中可以接受識(shí)別它。

注:特別注意apr_file_gets()的用法,沒有APR_BUFFERED的apr_file_gets()調(diào)用而將很大的影響效率,這是因?yàn)閍pr_file_gets()內(nèi)部將對(duì)每一個(gè)字節(jié)都會(huì)調(diào)用apr_file_read()。記住要使用apr_file_gets()時(shí),打開文件必須加上APR_BUFFERED標(biāo)志。

在以下的情況我不推薦你使用APR_BUFFERED標(biāo)志:
1.當(dāng)你使用mmap映射一個(gè)文件時(shí)(因?yàn)楫?dāng)mmap一個(gè)APR_BUFFERED文件時(shí)會(huì)產(chǎn)生錯(cuò)誤)
2.沒有讀/寫(例如僅僅是為了鎖住一個(gè)文件)
3.你能確定你使用一個(gè)大內(nèi)存緩沖區(qū)來讀/寫文件。

注:當(dāng)使用APR_BUFFERED標(biāo)志打開了一個(gè)文件并且對(duì)一個(gè)文件調(diào)用apr_file_trunc()函數(shù)時(shí),你必須在調(diào)用apr_file_trunc()之前調(diào)用apr_file_flush()之前,否則,文件將被損壞。

注: 當(dāng)使用APR_BUFFERED標(biāo)志打開了一個(gè)文件并且這個(gè)文件被多個(gè)線程共享,那么APR_XTHREAD標(biāo)志也是必需的。不幸的是,APR_XTHREAD標(biāo)志在Windows系統(tǒng)有另一面的影響,我的經(jīng)驗(yàn)告訴我不要在Windows系統(tǒng)中使用APR_XTHREAD標(biāo)志。

可以得到文件的各種信息,例如大小,時(shí)間,擁有者,訪問權(quán)限等等,這些信息存放在apr_finfo_t結(jié)構(gòu)體中,apr_finfo_t在文件apr_file_info.h中有定義。這里有兩個(gè)相關(guān)的API函數(shù):

/* 摘自 apr_file_io.h */
    APR_DECLARE(apr_status_t) apr_file_info_get(apr_finfo_t *finfo, apr_int32_t wanted, apr_file_t *thefile);

/* 摘自 apr_file_info.h */
    APR_DECLARE(apr_status_t) apr_stat(apr_finfo_t *finfo, const char *fname, apr_int32_t wanted, apr_pool_t *pool);

apr_file_info_get()函數(shù)要求apr_file_t對(duì)象,apr_stat()函數(shù)要求文件路徑。如果已經(jīng)打開了文件并且生成了apr_file_t對(duì)象,那么最好使用apr_file_info_get();否則,可以調(diào)用apr_stat()。與其他類型不同,apr_finfo_t是一個(gè)完整類型,這兩個(gè)api函數(shù)并沒有生成該對(duì)象,我們只能顯式地創(chuàng)建它并為其分配內(nèi)存。典型地,它在當(dāng)前棧中創(chuàng)建,這是因?yàn)槲覀兿胫酪恍┲T如文件大小和時(shí)間的屬性。注意如apr_finfo_t::fname等一些內(nèi)存,如果是創(chuàng)建在內(nèi)存池中的,這將產(chǎn)生一些錯(cuò)誤。請(qǐng)查看finfo-sample.c文件,了解它的用法。

有一些文件處理函數(shù)是在文件名基礎(chǔ)上運(yùn)行的,例如apr_file_remove()和apr_file_copy(),它們?cè)赼pr_file_io.h和arp_file_info.h文件中能找到。

注:一些API函數(shù)帶有"wanted"參數(shù), 通過指定該參數(shù)的位標(biāo)志得到文件的屬性。 這些函數(shù)是apr_dir_read(), apr_stat(), apr_lstat()和apr_file_info_get()。注意"wanted"參數(shù)的值將會(huì)超出操作系統(tǒng)的文件系統(tǒng)的支持,在這種情況下,該API函數(shù)將返回APR_INCOMPLETE。  

























?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩情趣电影| 亚洲永久免费视频| 精品999在线播放| 亚洲在线免费播放| 精品国产一区二区三区久久久蜜月 | 国产精品免费av| 国产日产精品1区| 国产欧美视频一区二区| 三级亚洲高清视频| 乱一区二区av| 亚洲午夜精品在线| 日本一区二区三区在线观看| 国产免费观看久久| 日韩亚洲欧美中文三级| 精品福利在线导航| 欧美日韩一区高清| 国产精品污www在线观看| 欧美午夜精品久久久久久超碰| 日产欧产美韩系列久久99| 亚洲精品国产精华液| 男女男精品视频| 色成年激情久久综合| 亚洲精品一区二区三区香蕉| 国产精品一品视频| 欧美视频在线观看一区二区| 亚洲女同女同女同女同女同69| 亚洲精品一区二区在线观看| 亚洲色图另类专区| 日韩一区二区影院| 亚洲欧洲韩国日本视频| 99九九99九九九视频精品| 亚洲成人av福利| 中文字幕一区二区三区乱码在线 | 国产精品婷婷午夜在线观看| 91免费观看国产| 九一九一国产精品| 色伊人久久综合中文字幕| 天天av天天翘天天综合网| 精品日韩在线观看| 成人污视频在线观看| 日本中文一区二区三区| 色婷婷av一区二区三区之一色屋| 欧美成人精品福利| 亚洲成人福利片| 欧美人xxxx| 99久久99久久精品国产片果冻| 日韩一级欧美一级| 亚洲精品乱码久久久久| 国产99精品视频| 国产精品亚洲专一区二区三区| 精品国产凹凸成av人导航| 美腿丝袜亚洲色图| 精品一区二区三区蜜桃| 欧美视频在线播放| 色综合网色综合| 极品少妇一区二区| 亚洲精品免费播放| 国产精品污污网站在线观看| 欧美日韩精品电影| 国产精品亚洲人在线观看| 日韩欧美一区二区不卡| 亚洲一区av在线| 成人午夜视频福利| 亚洲男女毛片无遮挡| 精品日韩一区二区三区| 国产欧美一区二区在线| 久久精品国产秦先生| 欧美日韩一本到| 99国产精品视频免费观看| 久久国产夜色精品鲁鲁99| 午夜精品久久久久久不卡8050| 日韩制服丝袜av| 综合欧美一区二区三区| 国产午夜精品在线观看| 国内精品国产成人国产三级粉色| 日韩一区国产二区欧美三区| 狠狠色综合色综合网络| 亚洲精品视频免费看| 久久久五月婷婷| 中文字幕一区在线观看视频| 色8久久精品久久久久久蜜| 精品一区二区三区免费观看| 亚洲欧美欧美一区二区三区| 日韩免费性生活视频播放| 国产精品系列在线| 久久超碰97中文字幕| 国产资源在线一区| 蜜桃av噜噜一区| 老司机午夜精品| 久久成人免费网站| 狠狠色2019综合网| 国产一区二区电影| 国产精品乱子久久久久| 亚洲国产精品黑人久久久| 91麻豆福利精品推荐| 欧美绝品在线观看成人午夜影视| 亚洲欧美视频在线观看视频| 91免费视频大全| 丁香六月综合激情| 91女人视频在线观看| 欧美日韩一本到| av爱爱亚洲一区| 亚洲色欲色欲www| 精品久久国产老人久久综合| 精品国产一二三| 国产日产亚洲精品系列| 国产精品美日韩| 亚洲影院免费观看| 久久99久久久欧美国产| 国产精品亚洲第一区在线暖暖韩国| 不卡的av电影| 久久福利视频一区二区| 国产精品一线二线三线精华| 99re成人精品视频| 在线观看免费亚洲| kk眼镜猥琐国模调教系列一区二区| 99热在这里有精品免费| 欧美日精品一区视频| 日韩欧美在线影院| 亚洲综合视频在线| 成人黄页毛片网站| 日本高清不卡视频| 久久久综合视频| 欧美aaaaaa午夜精品| 国产99久久久国产精品| 91小视频在线观看| 在线综合+亚洲+欧美中文字幕| 日韩电影在线一区| 国产丶欧美丶日本不卡视频| 日本不卡免费在线视频| 国产成人av电影在线播放| 色成年激情久久综合| 精品日韩在线一区| 亚洲国产毛片aaaaa无费看| 国产一区二区精品久久| 色94色欧美sute亚洲线路一久| 91精品国产欧美一区二区成人| 欧美狂野另类xxxxoooo| 中文字幕精品在线不卡| 天堂成人免费av电影一区| 不卡视频免费播放| 精品日产卡一卡二卡麻豆| 亚洲人成在线播放网站岛国| 精品一区二区三区久久| 欧美伊人久久久久久午夜久久久久| 久久久久久久久免费| 蜜桃精品视频在线观看| 色94色欧美sute亚洲线路二| 中文字幕免费不卡| 精品无码三级在线观看视频| 欧美日韩日日摸| 亚洲男女毛片无遮挡| 成人免费视频app| 精品国产免费一区二区三区香蕉| 亚洲午夜三级在线| 99热精品一区二区| 国产精品卡一卡二| 国产精品久久久久久久久免费相片| 免费成人av在线| 欧美三区免费完整视频在线观看| 中文字幕一区二区三区不卡| 激情都市一区二区| 日韩欧美中文字幕公布| 麻豆精品国产91久久久久久| 欧美精品在线观看播放| 亚洲一区二区精品久久av| 一本色道久久加勒比精品| 中文字幕日韩欧美一区二区三区| 国产成人午夜精品影院观看视频| 2020国产成人综合网| 欧美国产禁国产网站cc| 韩国av一区二区| 精品久久久久久久久久久久包黑料| 青青草一区二区三区| 欧美一区二区久久| 欧美a级一区二区| 欧美一区日韩一区| 麻豆精品在线看| 欧美不卡一区二区三区四区| 久久成人18免费观看| 欧美精品一区男女天堂| 国产精品中文欧美| 欧美国产一区视频在线观看| 国产成人精品亚洲午夜麻豆| 中文字幕成人av| 99久久精品免费观看| 亚洲午夜羞羞片| 欧美一区二区三区视频在线| 看国产成人h片视频| 久久婷婷国产综合精品青草| 国产91丝袜在线播放九色| 中文字幕成人av| 在线免费观看日韩欧美| 日韩精品三区四区| 精品国产91九色蝌蚪| 成人免费av网站| 亚洲综合久久久久| 日韩亚洲国产中文字幕欧美| 国产美女av一区二区三区| 中文字幕在线一区|