輸入/輸出通常是順序進行的,每次調(diào)用read和write進行讀寫的位置緊跟在前一次操作的位置之后.但是,有時候需要以任意順序進行訪問文件,系統(tǒng)調(diào)用lseek可以在文件中任意移動位置而不實際讀寫任何數(shù)據(jù).
直接套用百度百科的解釋吧,書上的不太能看懂.
每一個已打開的文件都有一個讀寫位置渐北,當打開文件時通常其讀寫位置是指向文件開頭,若是以附加的方式打開文件(如O_APPEND),則讀寫位置會指向文件尾。當read()或write()時,讀寫位置會隨之增加咸作,lseek()便是用來控制該文件的讀寫位置。參數(shù)fd 為已打開的文件描述符,參數(shù)offset為根據(jù)參數(shù)origin來移動讀寫位置的位移數(shù)萝映。
offset:偏移量,每一讀寫操作所需要移動的距離阐虚,單位是字節(jié)的數(shù)量序臂,可正可負(向前移,向后移)实束。
參數(shù)
origin為下列其中一種:(SEEK_SET,SEEK_CUR和SEEK_END和依次為0奥秆,1和2).
SEEK_SET 將讀寫位置指向文件頭后再增加offset個位移量。
SEEK_CUR 以目前的讀寫位置往后增加offset個位移量咸灿。
SEEK_END 將讀寫位置指向文件尾后再增加offset個位移量构订。
當origin值為SEEK_CUR 或SEEK_END時,參數(shù)offset允許負值的出現(xiàn)避矢。
就是可以在任意位置讀寫的意思.