/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ // Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file.
#ifndef BASE_DIR_READER_LINUX_H_ #define BASE_DIR_READER_LINUX_H_ #pragma once
~DirReaderLinux() { if (fd_ >= 0) { if (IGNORE_EINTR(close(fd_)))
DLOG(ERROR) << "Failed to close directory handle";
}
}
bool IsValid() const { return fd_ >= 0; }
// Move to the next entry returning false if the iteration is complete. bool Next() { if (size_) {
linux_dirent* dirent = reinterpret_cast<linux_dirent*>(&buf_[offset_]);
offset_ += dirent->d_reclen;
}
if (offset_ != size_) returntrue;
constint r = syscall(__NR_getdents64, fd_, buf_, sizeof(buf_)); if (r == 0) returnfalse; if (r == -1) {
DLOG(ERROR) << "getdents64 returned an error: " << errno; returnfalse;
}
size_ = r;
offset_ = 0; returntrue;
}
constchar* name() const { if (!size_) return NULL;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.