I’m trying to write to a file but starting from a certain position. I’ve tried to use write_at()
but it doesn’t work.
- The file is overwritten anyway, so what’s the point?
- It’s a UNIX-only API, and I would like to let people use my program on for example Windows and macOS.
>Solution :
The cross-platform solution is a two-step process: seek, then write. Note that this moves the file cursor, unlike write_at
.
let mut file = OpenOptions::new().write(true).open("example.txt")?;
file.seek(SeekFrom::Start(1234))?;
file.write_all(b"foobar")?;