4Danke
ERLEDIGT
JA
JA
ANTWORTEN
6
6
ZUGRIFFE
545
545
EMPFEHLEN
-
29.04.12 13:40 #1
Mitglied Bronze
- Registriert seit
- Apr 2012
- Beiträge
- 30
Hallo,
Ich habe mich gefragt, ob es in C mit "Hausmitteln" möglich ist bestimmte Fehlerfälle beim Öffnen/Lesen/Schreiben von Dateien zu unterscheiden.
Ich meine so etwas wie:
1) Öffnen: Datei nicht vorhanden/Keine (Zugriffs-)Rechte
2) Lesen: Keine (Lese-)Rechte/ Wird von anderen Prozess genutzt
3) Schreiben: Datei nicht (mehr) vorhanden (Netzwerklaufwerk/USB-Verbindung unterbrochen etc). / Keine (Schreib-)Rechte bzw. schreibgeschützt / Kein Speicherplatz mehr zur Verfügung / Speicherpfad nicht mehr vorhanden
usw usw.
z.B. Gibt fopen (so weit ich weiß) beim fehlgeschlagenen Öffnen einer Datei nur einen Pointer auf NULL zurück, oder gibt es andere Möglichkeiten?
Ich bedanke mich im Voraus!
Lg
-
29.04.12 14:30 #2
Mitglied Silber
- Registriert seit
- Mar 2011
- Beiträge
- 78
Hi neusesich,
vllt hilft dir diese Seite http://c-buch.sommergut.de/Kapitel11...-Dateien.shtml
Lg Padawan
-
29.04.12 15:16 #3
Mitglied Bronze
- Registriert seit
- Apr 2012
- Beiträge
- 30
Danke für den Tipp, aber so weit ich das sehen kann wird nur unterschieden zwischen geglücktem Öffnen und fehlgeschlagenem Öffnen.
hilft mir nicht weiter. Wird zwar nicht auf der Seite erklärt, aber wenn ich das richtig gegoogelt habe, dann schließt das ja das komplette Programm (was ich nicht beabsichtige).Code :1
exit(EXIT_FAILURE);
Der letzte Teil der Seite ist interessant. freopen werde ich wohl nicht brauchen, aber anscheinend sind auftretende Fehler im Stream stderr hinterlegt. Wie kann ich am besten darauf zugreifen? Die Ausgabe von stderr zeigt sicherlich nur einen englischen Text, oder? Ist es möglich eine Art Fehlercode zu erhalten?
lg
-
29.04.12 16:03 #4
Hi
errno liefert eine Fehlernummer.
Was die bedeutet, zB. hier nachschaubar:
http://www.ioplex.com/~miallen/errcmp.html
Und ja, exit beendet das Programm.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
29.04.12 19:27 #5
Mitglied Gold
- Registriert seit
- Feb 2011
- Beiträge
- 201
Und stderr gibt jetzt nicht automatisch Fehlermeldungen aus, das ist dasselbe wie stdout, nur ist es für Fehlermeldungen gedacht, die du als Programmierer ausgeben möchtest. Automatisch vom System bekommst du keine Fehlerausgabe. Für solche Fälle gibt es, wie von sheel schon gesagt, errno.
Lg
-
30.04.12 10:20 #6
Mitglied Diamant
- Registriert seit
- Jun 2005
- Beiträge
- 8.541
Hi.
Und einen entsprechenden Fehlertext kannst du mit perror ausgeben lassen. Oder du nutzt strerror um die Fehlermeldung in einen String zu kopieren.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
03.05.12 15:36 #7
Mitglied Bronze
- Registriert seit
- Apr 2012
- Beiträge
- 30
perror war genau das was ich gesucht habe! danke für's bessere verständnis
Ähnliche Themen
-
Dll lesen und schreiben
Von vbänfänger im Forum Visual Basic 6.0Antworten: 6Letzter Beitrag: 20.08.09, 13:29 -
.txt lesen/schreiben
Von shader09 im Forum C/C++Antworten: 18Letzter Beitrag: 16.10.07, 07:32 -
txt lesen/schreiben
Von shader09 im Forum C/C++Antworten: 0Letzter Beitrag: 11.10.07, 11:13 -
RandomAccessFile schreiben-lesen-schreiben-lesen
Von SMoeller im Forum JavaAntworten: 1Letzter Beitrag: 03.12.06, 15:39 -
Fehlercodes
Von Moartel im Forum Internet, DSL & FlatrateAntworten: 7Letzter Beitrag: 02.10.01, 18:47




Zitieren
Login
