#include <stdio.h> #include <string.h> int main (int argc, char *argv[]) { FILE *f = tmpfile (); char obuf[99999], ibuf[sizeof obuf]; char *line; size_t linesz; if (! f) { perror ("tmpfile"); return 1; } if (fputs ("line\n", f) == EOF) { perror ("fputs"); return 1; } memset (obuf, 'z', sizeof obuf); memset (ibuf, 'y', sizeof ibuf); if (fwrite (obuf, sizeof obuf, 1, f) != 1) { perror ("fwrite"); return 1; } rewind (f); line = NULL; linesz = 0; if (getline (&line, &linesz, f) != 5) { perror ("getline"); return 1; } if (strcmp (line, "line\n")) { puts ("Lines differ. Test FAILED!"); return 1; } if (fread (ibuf, sizeof ibuf, 1, f) != 1) { perror ("fread"); return 1; } if (memcmp (ibuf, obuf, sizeof ibuf)) { puts ("Buffers differ. Test FAILED!"); return 1; } asprintf (&line, "\ GDB is free software and you are welcome to distribute copies of it\n\ under certain conditions; type \"show copying\" to see the conditions.\n\ There is absolutely no warranty for GDB; type \"show warranty\" for details.\n\ "); puts ("Test succeeded."); return 0; }