1 /* Test of fseeko() function. 2 Copyright (C) 2011-2021 Free Software Foundation, Inc. 3 4 This program is free software: you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 3 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 16 17 /* Written by Eric Blake <eblake@redhat.com>, 2011. */ 18 19 #include <config.h> 20 21 #include <stdio.h> 22 23 #include <stdlib.h> 24 25 #include "macros.h" 26 27 int 28 main (int argc, char **argv) /* */ 29 { 30 int do_initial_ftell = atoi (argv[1]); 31 const char *filename = argv[2]; 32 FILE *fp = fopen (filename, "r"); 33 ASSERT (fp != NULL); 34 35 if (do_initial_ftell) 36 { 37 off_t pos = ftell (fp); 38 ASSERT (pos == 0); 39 } 40 41 ASSERT (fseeko (fp, 0, SEEK_END) == 0); 42 43 { 44 off_t pos = ftell (fp); 45 ASSERT (pos > 0); 46 } 47 48 ASSERT (fclose (fp) == 0); 49 50 return 0; 51 }