Archiv

C Standardbibliothekswrapper Überprüfen Sie den Rückgabewert von Bibliotheksanrufen für Fehler für Fehler

C Standardbibliothekswrapper Überprüfen Sie den Rückgabewert von Bibliotheksanrufen für Fehler für Fehler

AUTOR: Tobin Harding

Produktions -C -Code sollte immer den Rückgabewert der Bibliothek überprüfen
Forderungen nach Fehlern. Diese Überprüfungen erfordern jedoch häufig das gleiche Schreiben
wiederholt Code. Es gibt eine Reihe von Lösungen für dieses Problem von, von
was das nur einer ist.

Zum Beispiel

int foo (char *s) char *buf; if ((buf = malloc (strlen (s) + 1)) == null) / * fehler * /… 

Oft würden Sie diese Fehlerbedingungen lieber nur ignorieren, aber das ist
Produktionscode richtig! Durch Deklarieren einer Wrapper -Funktion
void *malloc (size_t size); und es definieren

void *malloc (size_t size) void *ptr; if ((ptr = malloc (Größe)) == null) fprintf (stderr, "malloc error"); exit (exit_failure);  return (ptr);  

Wir können diese Funktion dann in unserem Code verwenden. Der Code -Snippet oben kann
jetzt geschrieben werden als

int foo (char *s) char *buf; buf = malloc (strlen (s) + 1);… 

Und wir können weiterhin glücklich sein, dass wir den Fehler überprüft haben
Zustand. Wenn die Anforderungen ändern, ist es einfach eine Frage von
Aktualisieren Sie die Wrapper -Funktion, um das Verhalten im gesamten Verhalten zu ändern
Projekt.

Viel Glück.

Zuschreibung:
Ich wurde mit den Ideen vorgestellt, die hier vom Text vorgestellt wurden
UNIX -Netzwerkprogrammierung - Stevens, Fenner und Rudoff

Automatische HTML -Formulare mit wwwmechanize
Hier ist ein kurzer Tipp, wie Sie mithilfe einer Linux -Befehlszeile und Perl -Skript automatisch ein HTML -Formular einreichen können. Für dieses Bei...
Sikuli -Installation auf Ubuntu Lucid Lynx Linux
Die Sikuli -Software hilft einem Benutzer, viele der Routine -GUI -Aufgaben zu automatisieren. IT CORE Es verwendet Java Runtime Environment 6 und Ope...
Kein geeignetes VboxNetflt -Modul zum Ausführen von Kernel gefunden fehlgeschlagen!
Heute habe ich beschlossen, in der Softwareentwicklung voranzukommen und Debian Backports auf meinem X60S -Laptop zu verwenden. Die stabile Version vo...