1#include <assert.h>
2#include <errno.h>
3#include <stdio.h>
4
5#ifndef CHAR
6# define CHAR char
7# define L(str) str
8# define FPUTS fputs
9# define FSCANF fscanf
10#endif
11
12
13static int
14do_test (void)
15{
16 FILE *fp = tmpfile ();
17 if (fp == NULL)
18 {
19 puts (s: "cannot open file");
20 return 1;
21 }
22
23 FPUTS (L("7-11"), fp);
24 rewind (fp);
25
26 printf(format: "setting errno to EINTR\n");
27 errno = EINTR;
28
29 printf(format: "checking sscanf\n");
30
31 int i, j, n;
32
33 i = j = n = 0;
34 FSCANF (stream: fp, L(" %i - %i %n"), &i, &j, &n);
35 printf (format: "found %i-%i (length=%i)\n", i, j, n);
36
37 int result = 0;
38 if (i != 7)
39 {
40 printf (format: "i is %d, expected 7\n", i);
41 result = 1;
42 }
43 if (j != 11)
44 {
45 printf (format: "j is %d, expected 11\n", j);
46 result = 1;
47 }
48 if (n != 4)
49 {
50 printf (format: "n is %d, expected 4\n", j);
51 result = 1;
52 }
53
54 return result;
55}
56
57#define TEST_FUNCTION do_test ()
58#include "../test-skeleton.c"
59

source code of glibc/stdio-common/bug19.c