Hallo Stefan, On Sam, 10 Feb 2001, Stefan Troeger wrote:
On Fri, Feb 09 2001 at 18:05 +0100, David Haller wrote: [..]
struct stat *buf; [..] if ( (buf = malloc (sizeof(struct stat))) == NULL) { fprintf(stderr, "%s\n", strerror(ENOMEM)); /* das geht doch, oder? */
Ja. perror("") tut's aber auch.
Hmja. Nur macht das mit leerem Argument nicht viel Sinn. Ich hab' hier grad die Quellen der glibc-2.2 ausgepackt rumfahren und gleich mal in perror.c geschaut (Schreibweise komprimiert): void perror (const char *s) { char buf[1024]; int errnum = errno; const char *colon; if (s == NULL || *s == '\0') s = colon = ""; else colon = ": "; (void) fprintf (stderr, "%s%s%s\n", s, colon, __strerror_r (errnum, buf, sizeof buf)); } Und strerror.c: char *strerror (errnum) int errnum; { static char buf[1024]; return __strerror_r (errnum, buf, sizeof buf); } Ist also wohl gehupft wie gesprungen ;)
Man könnte sich noch die ganze malloc-Geschichte schenken, indem man buf als struct stat buf definiert.
Stimmt. Nochmal danke fuer die Tips und die Korrekturen! CU David -- Das wird aber etwas dauern, denn das, was da prophezeit worden ist, wird einige Zeit brauchen, um erst einmal herauszubekommen, was es denn eigentlich bedeuten soll, damit es dann schließlich eintreten kann. Falls es danach überhaupt noch Lust verspürt, einzutreten. Die Frage wird dann immer noch sein, was das Prophezeite eintreten wird. Eine Tür vielleicht? [Hilko Bengen in dag°]