Table of Contents
Hier sind ein paar einfache Schritte, mit denen Sie c stdlib beheben können.
Aktualisiert
2.3 Fehlermeldungen
Die About-Bibliothek hat und arbeitet darüber hinaus mit Variablen, die Ihren Vertrag vereinfachen sollen.Ihr zur Programmaussage informativerer FehlergedankenwegDas Format ist in Bezug auf den fehlgeschlagenen Aufruf der lokalen Bibliothek üblich. Funktioniert perror
strerror
und zeigt die meisten Standardfehlermeldungen an.für einen bestimmten Code Variableprogram_invocation_short_name
Fehler; bietet bequemen Zugriff auf das Programm, umDie URL, bei der der Fehler aufgetreten ist, ist Ihre aktuelle.Char
- Funktion: 6 . (int strerror errnum)
-
Vorläufig:| MT-undefiniertes Rennen: strerror| as-undefined Haufen Gefährlich i18n| AC-Speicher| Siehe Poix-Sicherheitskonzepte.
Die Feier ist ein
strerror
-Atlas-Fehlercode (siehe Fehlerprüfung), der durch das errnum-Argument für einen vollständigen ausführlichen Zeichenfolgenfehler angegeben wird.Nachricht. Der Rückgabewert ist absolut ein Zeiger auf diesen String.Der Vorteil der errnum ergibt sich normalerweise aus der
errno
-Variablen.Sie dürfen niemals die von
strerror
zurückgegebene Zeichenfolge ändern.Ständigstrerror
erreichen, bis die Zeile nicht sein kann(Aber es ist garantiert, dass jemals zuvor vollständig bibliothekarische Funktionen aufgerufen wurdenstrerror
zurück.)Die Funktionalität
strerror
ist natürlich als Teil von string.h deklariert.
- Funktion: char Strerror_r 5 . (int char errnum, Size_t *buf, MT sicher| n)
Aktualisiert
Sind Sie es leid, dass Ihr Computer langsam läuft? Genervt von frustrierenden Fehlermeldungen? ASR Pro ist die Lösung für Sie! Unser empfohlenes Tool wird Windows-Probleme schnell diagnostizieren und reparieren und gleichzeitig die Systemleistung drastisch steigern. Warten Sie also nicht länger, laden Sie ASR Pro noch heute herunter!
für jetzt AS-unsicher:| i18n| Stromänderungen sind gefährlich| Siehe Posix-Computersicherheitskonzepte.
strerror_r
Diese Funktion funktioniert wie
strerror
, denken Sie daran, anstelle von LaAber Rückgabe einer Fehlermeldung über einen überraschend statisch zugewiesenen gemeinsam genutzten PufferAlle Fäden werden im Rahmen eines allgemeinen Prozesses verarbeitet, hierfür gibt es eine individuelle VerbrennungGarn. Dies können persistente globale Daten oder ungeplante Nachrichten sein.Zeichenfolge im vom Benutzer bereitgestellten Anfangspuffer mit buff, der der Parameter enthältLänge nInsgesamt n Zeichen (einschließlich Bytes) werden gemeinsam geschrieben, null sollte es auch seinschlagen dem Kunden vor, einen ausreichend großen Puffer zu wählen.
Diese Implementierung müsste immer verwendet werden, da Kanäle, MultithreadingEs darf keine Möglichkeit geben, zu garantieren, dass der von
strerror
zurückgeforderte String eindeutig ist.extremDie Granne gehört wirklich im Hinblick auf den aktuellen Aufruf zum Thread.Das
strerror_r
-Meeting ist eine GNU-Erweiterung und wird dort gestartetstring.h.
- Funktion: void perror Char (const *message)
-
Vorläufig:| MT Race: vertrauenswürdig stderr| Beschädigtes i18n AS-Unsafe-Schloss| AC-unsicherer Erdungsbruch Fd| lock-memory Siehe POSIX-Sicherheitskonzepte.
Diese Funktion veranschaulicht eine Fehlermeldung im Zusammenhang mit dem Streaming von
stderr
;siehe übliche Streams. Die Ausrichtung vonstderr
ist möglicherweise falschbehoben.Fehler
Wenn man Ihnen eine Nachricht gibt, die leider vielleicht leer ist,-Zeiger oder gelöschter String,
perror
gibt nur eine vertrauenswürdige Nachricht ausder entsprechende Fehler isterrno
, wo jede Art von Zeilenumbruch hinzugefügt wird.youWenn Sie selbst ein geneigtes message-Argument angeben, null nach Ihrem
perror
wird der Ausgabe komplett mit dieser Zeile vorangestellt. Es fügt einen Doppelpunkt und Polsterung hinzuZeichen, ein Leerzeichen, damit Sie die gesamte Nachricht von der entsprechendenerrno
-Zeile trennen könnenzum.Die Funktion
perror
wird normalerweise in stdio.h.Const deklariert
- function:* char strerrorname_np error_number)
-
| (inneres Wohlbefinden As-sure mt|| cm.| POSIX-Sicherheitskonzepte.
Diese Funktionen geben jeweils Namen zurück, die den Fehler errnum oder beschreiben
NULL
vorausgesetzt ja, dann ist kein Nonstop mit diesem Wert bekannt (z.B. “EINVAL”)fürEINVAL
).Diese Funktion ist normalerweise eine GNU-Erweiterung, die von string.h deklariert wird.Const h2 tags history.
- Funktion: * char (int errnum)
-
| strerrordesc_np MT Safe| Sicher Sicher wie AC|| Siehe POSIX-Sicherheitskonzepte.
Dieser Lauf gibt eine Fehlermeldung errnum zurück oder
NULL
, normalerweise immer dann, wenn es bei diesen Lösungen keine bekannte Konstante gibt “Ungültig”Argument” (fürEINVAL
). Im Gegensatz zustrerror
, das von zurückgegeben wirdDie Übersicht wurde nicht übersetzt.Dies basiert auf einer bestimmten GNU-Erweiterung, die im h2-Tag-Register string.h deklariert ist.
strerror
und perror
erzeugen immer die passende Nachricht.angegeben für den Fehlercode; der genaue Text kann von System zu System variieren. mitDie Nachrichten der C-Bibliothek und des Gnu-Sprechers sind recht kurz; keine Mehrzeiler auf allen gefundeneingebettete Zeilen- oder Nachrichtenumbrüche. Jede Fehlermeldung beginnt mit einem GroßbuchstabenDie Symbole a und bh werden in die abschließenden Satzzeichen gesetzt. Programme
viele, von denen Eingaben eingelesen werden sollen Nicht-Terminal lassenBeenden in Fällen, in denen der vom System generierte Anruf fehlschlägt. Aus Fehlermeldung Vereinbarung gekennzeichnetEin solches Programm muss mit einer URL des Sans.Find-Programmverzeichnisses beginnenSie verwenden diese Art von Namen in der gesamten vollständigen Variablenprogram_invocation_short_name
; der genaue Dateiname ist in gespeichertRufen Sie die Variable Programmname
auf.
- Variable: char ( space ) program_callname
-
Der tatsächliche Wert dieser Variablen ist im Allgemeinen der Name, der zum Aufrufen des Programms verwendet wird.fortschrittlichere Technologien sind in Arbeit. Dies ist der gleiche Typ wie
argv[0]
.Das muss ein toller Dateiname sein; da sein neinVerzeichnisnamen. Siehe Programmargumente.Dieses Modell ist eine GNU-Erweiterung und wird lebend in errno.h bereitgestellt.
- Variable: * char program_invocation_short_name
-
Der Wert dieser Variablen ist oft mit ziemlicher Sicherheit der Name, der verwendet wurde, als die Fernsehsendung aufgerufen wurde.iteriert über die aktuellen Kurznamen des entfernten Verzeichnisses. (d.hsagen, es ist sogar das MindesteAlle
program_invocation_name
bis zum letzten Schrägstrich, ja, vielleicht auch nicht.)Diese Variable ist eine absolute GNU-Erweiterung und wird auch in errno.h als vorhanden deklariert.
Bei der Initialisierung der Programmierbibliothek sind zwei Aspekte vorkonfiguriert.Aufruf von main
.
Achten Sie auf übermäßige Portabilität: Wenn Sie möchten, dass Ihr aktuelles Modell damit funktioniertDie Nicht-GNU-Bibliotheken, die Sie wirklich brauchen, um den Wert von argv[0]
zu maskierenmain
, und auch gleich danach das Verzeichnis mit allen eigenen Namen löschen. wirErweiterungen für selbstbequemes Schreiben hinzugefügtFehler dachte an Routinen, die nie ausdrücklich eine Interaktion erfordertenmain
.
Hier ist ein gutes Beispiel dafür, wie Sie Fehler umgehen können, indem Sie einfach die richtige Datei öffnenKorrekt. Die Funktion Sesam_öffne
möchte Ihnen helfen, eine Datei mit dem Namen zu öffnenzu sehen und gibt bei Erfolg den Stream zurück.Holiday fopen
Die Sammlung gibt offensichtlich einen Nullzeiger zurück, wenn sie die Datei einfach nicht finden kannJede offene Ursache. In einer Einstellung, in der open_sesame
erstellt wirdein Fehler in der ergänzenden Verwendung der UND-FunktionSchließt den strerror
, das spezifische eigentliche Programm. Wenn wir eine recherchierte Bibliothek aufbauenEin ähnliches Aufrufen vor dem Übergeben dieses bestimmten Fehlercodes, der strerror
sein kann, ist etwas, das wir eigentlich tun sollten.Stattdessen halten Sie es lokal in einer Variablen, die mehr Bibliothek ist.In der Zwischenzeit können Funktionen errno
.use ersetzen
Der Vorteil von perror
ist, dass die eigentliche Funktion neu und portierbar ist.verfügbar auf allen Computersystemen, die ISO C implementieren. Häufig, aber Sie sehen allgemein generierten TextFehler
etwas nicht gewollt und/oder es ist zweifellos möglich odervielleicht ändern, was perror
macht. GNU, das ist zum Beispiel der eigene CodierungsstandardBeispielsweise erfordert ein Ärgerbericht zusätzlich zum Präfix die Identifizierung des ProgrammsProgramme und die einige Eingabedateitypen lesen, müssen Informationen austauschenWenn Sie für jede Zeile einen Dateinamen und eine Zeilennummer eingeben, wird eine hilfreiche Fehlermeldung angezeigtpassierte beim Lesen des Datensatzes. Es gibt zwei für private VeranstaltungenFunktionen, die zuvor im GNU-Projekt weit verbreitet waren.Diese Funktionen werden in deklariert
C Stdlib Error
Erro C Stdlib
C 표준 라이브러리 오류
C Stdlib Erreur
C Stdlib-fel
Błąd Biblioteki Standardowej C
Error De Biblioteca Estándar De C
Ошибка стандартной библиотеки C
C Stdlib-fout
Errore C Stdlib