322
File::SeekFromStart (off_t& offset)
325
if (DescriptorIsValid())
327
offset = ::lseek (m_descriptor, offset, SEEK_SET);
330
error.SetErrorToErrno();
334
error.SetErrorString("invalid file handle");
340
File::SeekFromCurrent (off_t& offset)
343
if (DescriptorIsValid())
345
offset = ::lseek (m_descriptor, offset, SEEK_CUR);
348
error.SetErrorToErrno();
352
error.SetErrorString("invalid file handle");
358
File::SeekFromEnd (off_t& offset)
361
if (DescriptorIsValid())
363
offset = ::lseek (m_descriptor, offset, SEEK_END);
366
error.SetErrorToErrno();
370
error.SetErrorString("invalid file handle");
322
File::SeekFromStart (off_t offset, Error *error_ptr)
325
if (DescriptorIsValid())
327
result = ::lseek (m_descriptor, offset, SEEK_SET);
332
error_ptr->SetErrorToErrno();
337
else if (StreamIsValid ())
339
result = ::fseek(m_stream, offset, SEEK_SET);
344
error_ptr->SetErrorToErrno();
351
error_ptr->SetErrorString("invalid file handle");
357
File::SeekFromCurrent (off_t offset, Error *error_ptr)
360
if (DescriptorIsValid())
362
result = ::lseek (m_descriptor, offset, SEEK_CUR);
367
error_ptr->SetErrorToErrno();
372
else if (StreamIsValid ())
374
result = ::fseek(m_stream, offset, SEEK_CUR);
379
error_ptr->SetErrorToErrno();
386
error_ptr->SetErrorString("invalid file handle");
392
File::SeekFromEnd (off_t offset, Error *error_ptr)
395
if (DescriptorIsValid())
397
result = ::lseek (m_descriptor, offset, SEEK_END);
402
error_ptr->SetErrorToErrno();
407
else if (StreamIsValid ())
409
result = ::fseek(m_stream, offset, SEEK_END);
414
error_ptr->SetErrorToErrno();
421
error_ptr->SetErrorString("invalid file handle");