Wie lese ich den Schwanz einer O_Direct -Datei?
Posted: 27 Feb 2025, 03:24
Ich habe eine Datei mit O_Direct geöffnet und benutze AIO, um sie zu lesen. Aber was ist, wenn die Dateigröße nicht ein Vielfaches der Blockgröße ist? Wie kann ich das letzte Bit der Datei lesen?
Code: Select all
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
template class ScopeExit {
public:
explicit ScopeExit(FuncT&& fn) : f(std::forward(fn)) {}
~ScopeExit() { f(); }
ScopeExit(const ScopeExit&) = delete;
ScopeExit& operator=(const ScopeExit&) = delete;
ScopeExit(ScopeExit&&) = delete;
ScopeExit& operator=(ScopeExit&&) = delete;
private:
FuncT f;
};
template ScopeExit(F&&) -> ScopeExit;
template long checked_syscall(long syscall_number, Args... args) {
long ret = syscall(syscall_number, args...);
if (ret < 0) {
auto error = errno;
std::cerr