| 211 | } |
| 212 | |
| 213 | void File::fseek(void* f, StreamOffset offset, IOSeek seekMode) { |
| 214 | auto fd = fdFromHandle(f); |
| 215 | int retCode; |
| 216 | if (seekMode == IOSeek::Relative) |
| 217 | retCode = lseek(fd, offset, SEEK_CUR); |
| 218 | else if (seekMode == IOSeek::Absolute) |
| 219 | retCode = lseek(fd, offset, SEEK_SET); |
| 220 | else |
| 221 | retCode = lseek(fd, offset, SEEK_END); |
| 222 | |
| 223 | if (retCode < 0) |
| 224 | throw IOException::format("Seek error: {}", strerror(errno)); |
| 225 | } |
| 226 | |
| 227 | StreamOffset File::ftell(void* f) { |
| 228 | return lseek(fdFromHandle(f), 0, SEEK_CUR); |
nothing calls this directly
no test coverage detected