1 /* A program to test BFD. 2 Copyright (C) 2012-2016 Free Software Foundation, Inc. 3 4 This file is part of the GNU Binutils. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program; if not, write to the Free Software 18 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 19 MA 02110-1301, USA. */ 20 21 #include "sysdep.h" 22 #include "bfd.h" 23 24 static void 25 die (const char *s) 26 { 27 printf ("oops: %s\n", s); 28 exit (1); 29 } 30 31 int 32 main (int argc, char **argv) 33 { 34 bfd *archive; 35 bfd *last, *next; 36 37 if (argc != 2) 38 die ("usage: bfdtest1 <archive>"); 39 40 archive = bfd_openr (argv[1], NULL); 41 if (archive == NULL) 42 die ("no such archive"); 43 44 if (!bfd_check_format (archive, bfd_archive)) 45 { 46 bfd_close (archive); 47 die ("bfd_check_format"); 48 } 49 50 for (last = bfd_openr_next_archived_file (archive, NULL); 51 last; 52 last = next) 53 { 54 next = bfd_openr_next_archived_file (archive, last); 55 bfd_close (last); 56 } 57 58 for (last = bfd_openr_next_archived_file (archive, NULL); 59 last; 60 last = next) 61 { 62 next = bfd_openr_next_archived_file (archive, last); 63 bfd_close (last); 64 } 65 66 if (!bfd_close (archive)) 67 die ("bfd_close"); 68 69 return 0; 70 } 71