Hallo,
ich habe derzeit Probleme mit dem Auslesen einer Datei. Undzwar erstelle ich Anfangs eine Datei mit CreateFile() und rufe danach CreateProcess() auf, das dann den Output in die erstellte Datei umleitet. Nun, soweit so gut.
Ich schließe alle Handles, damit ich später die Datei auslesen kann, jedoch bekomme ich immer den Error, dass die Datei noch von einem Prozess verwendet wird.
Was mache ich Falsch?
ich habe derzeit Probleme mit dem Auslesen einer Datei. Undzwar erstelle ich Anfangs eine Datei mit CreateFile() und rufe danach CreateProcess() auf, das dann den Output in die erstellte Datei umleitet. Nun, soweit so gut.
Ich schließe alle Handles, damit ich später die Datei auslesen kann, jedoch bekomme ich immer den Error, dass die Datei noch von einem Prozess verwendet wird.
Was mache ich Falsch?
C++:
//Erstelle Datei
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
HANDLE hOut = CreateFile(pathStdout, GENERIC_ALL, NULL, &sa, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
C++:
//Erstelle Prozess
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));
ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESTDHANDLES;
si.hStdOutput = hOut;
//CreateProcess();
CloseHandle(pi.hProcess); //Close Handle
CloseHandle(pi.hThread); //Close Handle
CloseHandle(si.hStdOutput); //Close Handle
C++:
//Lese Datei
if(fopen_s(&hFile, pathStdout, "r") != 0)
return 0;
else {
//....
}