Hallo,
kann mir jemand vielleicht sagen, warum folgende C-Funktion die angegebene Logdatei nicht öffnet und auch nichts in STDERR ausgibt ?
void Trace ()
{
FILE * fp;
if ((fp = fopen ("/a/b/c/log/file.log", „a“)) == NULL)
{
fprintf (stderr, "ERR: Unable to open file „file.log“);
exit (1);
}
fprintf (fp, „File: %s Line: %d“, __FILE__, __LINE__);
if (fclose (fp) != 0)
fprintf (stderr, "ERR: Could not close file „file.log“);
return;
}
Diese Funktion habe ich in einer .pc-Datei meines Projekts definiert
und aus mehreren Stellen in dieser und anderen Dateien aufgerufen.
Die Projekt Soursen wurden in meiner Work Area kompiliert und das erzeugte Binary von meinem BIN-Verzeichnis ("/a/d/e/bin")fuer Testzwecken in ein anderes BIN-Verzeichnis ("/a/b/c/bin") kopiert.
Die Logdatei „/a/b/c/log/file.log“ musste in der Laufzeit erzeugt werden, was aber nicht passiert. Auch gibt es keine Ausgabe in STDERR. Wenn ich diese Logdatei zuerst anlege und danach das Programm starte, wird in diese Datei einfach nichts geschrieben.
MFG
yku