2016-07-15 10 views
0

nicht öffnen Ich habe ein mittelgroßes Programm, das ich mit Eclipse entwickle, kann ich den Inhalt nicht anzeigen, weil es zu groß wäre. Irgendwann habe ich einige Zeilen von , ich versuche im Grunde, eine neue Datei zu erstellen und in dieser Datei einen Inhalt zu drucken, der aus einer bestimmten Verarbeitung stammt.Kann eine Datei in C/C++ mit Eclipse cdt

So ist meine Linie etwas wie ein klassisches

FILE* f = fopen(filename,"w"); 

wo filename ein char-Array groß genug ist. Die zurückgegebene FILE* ist jedoch 0, und wenn ich die errno überprüfen, ist es die Nummer 2, was bedeutet, dass die Datei nicht existiert.

Aber das ist der Punkt, ich habe versucht, eine neue Datei zu erstellen. Gibt es etwas, das Sie vorschlagen können, kann ich das weiter überprüfen?

Es lohnt sich zu beachten, dass ich dieses Zeug auf Unix, nicht Windows laufen lasse.

Antwort

0

Ihr Dateiname ist möglicherweise falsch erstellt, oder Sie haben keinen Zugriff auf den Pfad oder Teile des Pfads sind nicht vorhanden.

Versuchen Sie zuerst einen einfachen und eindeutig legalen Weg, wie C:\\Temp\\x.x oder etwas Ähnliches. Wenn das funktioniert, ist es nicht Ihr Code, sondern der Dateiname.

1

Ist der Wert von Dateiname ein absoluter Pfad oder ein relativer Pfad? Wenn es das letztere ist, dann hat der Prozess, den Sie ausführen, wahrscheinlich nicht das cwd (aktuelles Arbeitsverzeichnis), von dem Sie denken, dass es das hat.

  1. Versuchen Sie einen absoluten Pfad verwenden, wenn das dann
  2. verwenden, um die chdir Systemaufruf an den Beginn des Haupt arbeitet die cwd
+0

Es ist ein relativer Pfad ist gesetzt, was schlagen Sie vor? – user8469759

+0

Wie gesagt, der relative Pfad wird aus dem 'aktuellen Arbeitsverzeichnis' des Prozesses berechnet. Bei einem von einer Befehlszeile ausgeführten Prozess ist dies das Verzeichnis, in dem Sie sich befinden, wenn Sie es starten. Für Programme, die von einer Umgebung (entweder der Eclipse-IDE oder einem Fenstermanager irgendeiner Art) ausgeführt werden, hängt es ab. – TheHobbit