diff options
author | Mark Wielaard <[email protected]> | 2020-06-11 23:16:21 +0200 |
---|---|---|
committer | Mark Wielaard <[email protected]> | 2020-06-11 23:16:21 +0200 |
commit | 50a6eeef7d87623faa65126dc3d16c2a8e613aea (patch) | |
tree | 19a35135efaac56c49a30316c6572c7b4d6ec4aa /tests/getphdrnum.c | |
parent | 49f13584d60322578c19b6118393ab04236ca7bf (diff) | |
parent | a2bc0214a5615551d89cef8d160bdbaafd5f1a83 (diff) |
Merge tag 'elfutils-0.180' into mjw/RH-DTSdts-0.180
elfutils 0.180 release
Diffstat (limited to 'tests/getphdrnum.c')
-rw-r--r-- | tests/getphdrnum.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/getphdrnum.c b/tests/getphdrnum.c new file mode 100644 index 00000000..07f75db0 --- /dev/null +++ b/tests/getphdrnum.c @@ -0,0 +1,48 @@ +#include "config.h" + +#include <fcntl.h> +#include <libelf.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/stat.h> +#include <sys/types.h> + +int main (int argc, const char **argv) +{ + int fd; + Elf *elf; + size_t phnum; + + if (argc != 2) + { + fprintf (stderr, "usage: %s FILE\n", argv[0]); + return EXIT_FAILURE; + } + + fd = open (argv[1], O_RDONLY); + if (fd == -1) + { + perror ("open"); + return EXIT_FAILURE; + } + elf_version (EV_CURRENT); + elf = elf_begin (fd, ELF_C_READ, NULL); + if (!elf) + { + fprintf (stderr, "elf_begin: %s\n", elf_errmsg (-1)); + return EXIT_FAILURE; + } + if (elf_getphdrnum (elf, &phnum)) + { + fprintf(stderr, "elf_getphdrnum: %s\n", elf_errmsg (-1)); + return EXIT_FAILURE; + } + + printf("%zu\n", phnum); + + elf_end (elf); + close (fd); + + return EXIT_SUCCESS; +} |