2017-01-07 10 views

答えて

2

utop例えば、:

#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 Test.data

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

-cv説明:

  • SEEK_SETは、ファイルの先頭からの相対的な位置を示します。
  • lseekの結果は、ファイルののからオフセットされています。
  • ファイルを巻き戻すには、lseek fd 0 Unix.SEEK_SETを使用します。
  • ファイルの第2の文字を読むには、(読み取る前に)lseek fd 1 Unix.SEEK_SETを行う必要があります。
1

Unix.lseekを探している可能性がありますが、私は正確なセマンティクスに慣れていません。ファイル(Test.data)内の特定の位置にある文字( 'A')を書き込む

関連する問題