2017-01-07 86 views

回答

2

一個UTOP例如,寫在某個位置的字符( 'A')的文件(Test.data)內:

#use "topfind";; 
#require "unix";; 
open Unix;; 

let fd=openfile "Test.data" [O_WRONLY; O_TRUNC; O_CREAT] 0o666;; 

let nbBytes=lseek fd 12 Unix.SEEK_SET;;  
if nbBytes<>12 then failwith "Unix.lseek";; 

let nbChars= write fd "A" 0 1;;  
if nbChars<>1 then failwith "Unix.write";; 
close fd;; 

OD -cv Test.data

0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 A 

說明:

  • SEEK_SET表示相對於文件開頭的位置。
  • lseek的結果偏離文件的開始
  • 要倒回文件,您可以使用:lseek fd 0 Unix.SEEK_SET
  • 要閱讀第二個文件的字符,您必須這樣做(在閱讀之前):lseek fd 1 Unix.SEEK_SET
1

可能你正在尋找Unix.lseek,雖然我不熟悉確切的語義。

相關問題