1 // RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s
2 //
3 // UNSUPPORTED: linux, darwin, solaris
4 
5 #include <assert.h>
6 #include <inttypes.h>
7 #include <stdio.h>
8 
main(void)9 int main(void) {
10   printf("fseek\n");
11 
12   FILE *fp = fopen("/etc/fstab", "r");
13   assert(fp);
14 
15   int rv = fseek(fp, 10, SEEK_SET);
16   assert(!rv);
17 
18   printf("position: %ld\n", ftell(fp));
19 
20   rewind(fp);
21 
22   printf("position: %ld\n", ftell(fp));
23 
24   rv = fseeko(fp, 15, SEEK_SET);
25   assert(!rv);
26 
27   printf("position: %" PRIuMAX "\n", (uintmax_t)ftello(fp));
28 
29   fpos_t pos;
30   rv = fgetpos(fp, &pos);
31   assert(!rv);
32 
33   rewind(fp);
34 
35   printf("position: %" PRIuMAX "\n", (uintmax_t)ftello(fp));
36 
37   rv = fsetpos(fp, &pos);
38   assert(!rv);
39 
40   printf("position: %" PRIuMAX "\n", (uintmax_t)ftello(fp));
41 
42   rv = fclose(fp);
43   assert(!rv);
44 
45   // CHECK: fseek
46   // CHECK: position: 10
47   // CHECK: position: 0
48   // CHECK: position: 15
49   // CHECK: position: 0
50   // CHECK: position: 15
51 
52   return 0;
53 }
54