Domanda

Come posso impostare il flag FILE_FLAG_BACKUP_SEMANTICS per un oggetto fstream?

Puoi impostare la maggior parte dei flag con fstream, ma sembra che questo non sia disponibile. Puoi leggere la bandiera qui .

È stato utile?

Soluzione

Ho fatto questo genere di cose in passato ma è passato un po 'di tempo quindi non sono sicuro di averlo fatto bene.

Non ben documentato, ma in vs2008, fstream prende un oggetto FILE come costruttore. È possibile creare un oggetto FILE da un ID file con _fdopen (). È possibile ottenere un ID file da un handle di sistema operativo utilizzando _open_osfhandle.

Quindi penso che sia come:

int id = _open_osfhandle(CreateFile(..., FILE_FLAG_BACKUP_SEMANTICS...));
fstream f = new fstream(_fdopen(id));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top