形參實(shí)參暫時(shí)不提.與原來一樣.
這個(gè)程序的功能是移動(dòng)讀寫位置.所以他有兩種情況分別是讀和寫.
首先是讀的情況.
因?yàn)橛芯彌_區(qū)的存在,如果已經(jīng)打開了文件并且已經(jīng)讀取數(shù)據(jù),那么當(dāng)前位置是在緩沖區(qū)之后的那個(gè)字符.因?yàn)榫彌_區(qū)也被視為已經(jīng)被讀取的,但是緩沖區(qū)的內(nèi)容并沒有實(shí)質(zhì)的輸出到某個(gè)文件或者屏幕上,所以暫時(shí)他們對(duì)于用戶來說還是未讀取的.所以以用戶的角度要將當(dāng)前的偏移量向前(也就是緩沖區(qū)的方向偏移),偏移直到緩沖區(qū)開頭的offset個(gè)字符.(這個(gè)偏移不是在緩沖區(qū)中偏移而是在文件中偏移,所以后面要清空緩沖區(qū))
然后調(diào)用lseek以此偏移量進(jìn)行操作.
已經(jīng)偏移后,清空緩沖區(qū).
然后是寫的情況.
首先要把緩沖區(qū)的內(nèi)容全部寫入到文件,然后才能以此進(jìn)行偏移.不然如果緩沖區(qū)有內(nèi)容,先改變了讀寫位置,文件關(guān)閉后緩沖區(qū)的內(nèi)容寫到文件中,當(dāng)前的讀寫位置依然是錯(cuò)的(如果緩沖區(qū)有內(nèi)容的情況下).
然后調(diào)用lseek正常操作.
最后是返回執(zhí)行情況,是否出錯(cuò).