Hallo,
die Sache sieht jetzt etwas einfacher (oder komplizierter?) aus.
Es liegt nicht an der Funktion.
Hier das Beispiel:
<?php
$programmPfad = 'D:/CSDiff/CSDiff.exe';
$DiffDateiPfad = 'F:\tmp\DiffOutput.txt';
$datei1 = 'd:\test\a.php'; // a.php != b.php, a.php == c.php
$datei2 = 'd:\test\b.php';
$datei3 = 'd:\test\c.php';
$handle = fopen($DiffDateiPfad, 'w');
fclose($handle); // Leere Datei erstellen
print (filesize ($DiffDateiPfad)); // ==> 0
echo "<br>";
$exec = $programmPfad . ' /Od' . $DiffDateiPfad . ' ' . $datei1 . ' ' . $datei2;
exec ($exec); // Ergebnis 0, wenn Dateien identisch, > 0, wenn verschieden
print (filesize ($DiffDateiPfad)); // sollte != 0 sein
?>
Auch wenn die Datei ($DiffDateiPfad = 'F:\tmp\DiffOutput.txt';) einen Inhalt hat, liefert filesize den Wert 0.
Wenn ich nach Beendigung des Programms dieses Programm:
<?php
$DiffDateiPfad = 'F:\tmp\DiffOutput.txt';
print (filesize ($DiffDateiPfad)); // ==> 0
?>
aufrufe, wird mir die Größe der Datei (>0) richtig angezeigt.
Vermutung: Datei ist noch nicht geschlossen, wenn das sizeof durchgeführt wird.
Wie kann ich dies ändern?
Danke
Konrad