Linux-glibc

glibc:GNU C 语言函数库(glibc, http://www.gnu.org/software/libc/)是 Linux 上最常用的实现。
确定它的版本号方式如下:

1.直接运行它就可以看到版本号:

某些版本不在此路径,我们可以根据某个链接共享库glibc的程序通过ldd(列出动态依赖关系)去确定。比如gcc,我们可以先查找gcc的位置(whereis gcc 或者which gcc),一般在/usr/bin/gcc,然后ldd /usr/bin/gcc查看。或者自己的一个执行程序

2.常量测试:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include</usr/include/x86_64-linux-gnu/gnu/libc-version.h>

int main(int argc,char *argv[]){
	printf("%d %d\n",__GLIBC__,__GLIBC_MINOR__);
	return 0;
}

3.函数测试:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include</usr/include/x86_64-linux-gnu/gnu/libc-version.h>

int main(int argc,char *argv[]){
	printf("%s\n",gnu_get_libc_version());//puts(gnu_get_libc_version());
	return 0;
}

4.命令测试:getconf GNU_LIBC_VERSION

5.利用confstr测试:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include</usr/include/x86_64-linux-gnu/gnu/libc-version.h>

int main(int argc,char *argv[]){
	char *pathbuf;char *gnu_libthread_version_buf;char *gnu_libc_version_buf;
	size_t n;
	n=confstr(_CS_PATH,NULL,(size_t)0);
	pathbuf=malloc(n);
	if(pathbuf==NULL)
		abort();
	confstr(_CS_PATH,pathbuf,n);
	printf("%s\n",pathbuf);
	
	n=confstr(_CS_GNU_LIBC_VERSION,NULL,(size_t)0);
	gnu_libc_version_buf=malloc(n);
	if(gnu_libc_version_buf==NULL)
		abort();
	confstr(_CS_GNU_LIBC_VERSION,gnu_libc_version_buf,n);
	printf("%s\n",gnu_libc_version_buf);//库版本
	
	n=confstr(_CS_GNU_LIBPTHREAD_VERSION,NULL,(size_t)0);
	gnu_libthread_version_buf=malloc(n);
	if(gnu_libthread_version_buf==NULL)
		abort();
	confstr(_CS_GNU_LIBPTHREAD_VERSION,gnu_libthread_version_buf,n);
	printf("%s\n",gnu_libthread_version_buf);
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值