Page 1 of 1

Wie lese ich den Schwanz einer O_Direct -Datei?

Posted: 27 Feb 2025, 03:24
by Anonymous
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