011
15.09.2003, 17:14 Uhr
0xdeadbeef
Gott (Operator)
|
Wie gesagt, ich würd nen Buffer und seine Länge als Parameter übergeben und nachher den Buffer zurückgeben. Für den Fall, das was schiefgeht, NULL zurück und errno setzen. Beispiel:
C++: |
#include <errno.h>
char *fill(char *buf, size_t len, char cnt) { size_t i; if(buf == NULL) { errno = EFAULT; return NULL; } for(i = 0; i < len; ++i) buf[i] = cnt; buf[len] = 0; return buf; }
|
Die Anwendung dann:
C++: |
#include <errno.h>
char *b; size_t len; /*...b verändern, niemand weiß, ob b NULL ist. Aber wenn b != NULL, ist len <= Länge des Buffers */ if(fill(b, len, 'A') == NULL) { switch(errno) { case EFAULT: fprintf(stderr, "Bad address\n"); break; case ... } exit(errno); } else { printf("%s\n", b); }
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 15.09.2003 um 17:17 Uhr von 0xdeadbeef editiert. |