OCaml中是否有seekp()
的等价物?
我需要在某些偏移量的文件中写入字符。
答案 0 :(得分: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
说明:
lseek fd 0 Unix.SEEK_SET
。lseek fd 1 Unix.SEEK_SET
。答案 1 :(得分:1)
可能你正在寻找Unix.lseek
,虽然我不熟悉确切的语义。