Here we list 3 methods to get glibc version:
Method 1, ldd
The easiest way is to use ldd
command which comes with glibc and in most cases it will print the same version as glibc:
$ ldd --version
ldd (Ubuntu GLIBC 2.30-0ubuntu2.1) 2.30
Here "2.30" is the version.
Method2, libc.so
We can also use the libc.so to print out version. First we need to find out the path of libc.so. You can use ldd to a binary to find out the libc.so:
$ ldd `which ls` | grep libc
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f918034d000)
From where we can see the libc.so path is /lib/x86_64-linux-gnu/libc.so.6.
Then simply run:
$ /lib/x86_64-linux-gnu/libc.so.6
GNU C Library (Ubuntu GLIBC 2.30-0ubuntu2.1) stable release version 2.30.
WE get the versin "2.30".
Method 3, programmatic way
We can also write a program to print the version out. There are 3 ways we can do this programmatically.
#include <gnu/libc-version.h>
#include <stdio.h>
#include <unistd.h>
int main() {
// method 1, use macro
printf("%d.%d\n", __GLIBC__, __GLIBC_MINOR__);
// method 2, use gnu_get_libc_version
puts(gnu_get_libc_version());
// method 3, use confstr function
char version[30] = {0};
confstr(_CS_GNU_LIBC_VERSION, version, 30);
puts(version);
return 0;
}
Compile and run:
$ gcc main.c -o main
$ ./main
2.30
2.30
glibc 2.30
Top comments (0)