2017-01-07 9 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;; 

од -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, хотя я не знаком с точной семантикой.

 Смежные вопросы

  • Нет связанных вопросов^_^