2017-01-07 1 views

답변

2

utop 예, 파일 (Test.data) 내측 소정 위치에 문자 ('A')을 쓰기 :

#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을 찾고 있습니다.