在ubuntu下
$ apt-cache show libc6
返回的信息里包含 Provides: glibc-2.7-1
网上查了一下,还有
$ rpm -q glib 也行。
还有 SIE 提到的查看文件名。
最后我在网上查到, "Frequently Asked Questions about the GNU C Library" (the FAQ)
里一个函数程序:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include <stdio.h>
#include <gnu/libc-version.h>
int main (void) { puts (gnu_get_libc_version ()); return 0; }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
运行结果:
kongove@ubuntu:~$ ./a.out
2.8.90
看来 apt-cache show libc6得到的那个信息应该不是当前glibc版本。
--
Jianjun Kong @_@ Happy Hacking
Homepage: http://kongove.cn/
Gtalk: kongj...@gmail.com
ArchLinux下只需要pacman -Ss即可看到源内最新软件的版本信息,更方便一些
--
Keep It Simple Stupid
ghosTM55
很不幸,你连glib和glibc都没分清楚。。。。。
>还有 SIE 提到的查看文件名。
>
>最后我在网上查到, "Frequently Asked Questions about the GNU C Library" (the FAQ)
>里一个函数程序:
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>#include <stdio.h>
>#include <gnu/libc-version.h>
> int main (void) { puts (gnu_get_libc_version ()); return 0; }
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>运行结果:
>kongove@ubuntu:~$ ./a.out
>2.8.90
>
>看来 apt-cache show libc6得到的那个信息应该不是当前glibc版本。
>
$ /lib/libc.so.6
GNU C Library stable release version 2.8, by Roland McGrath et al.
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.3.0 20080428 (Red Hat 4.3.0-8).
Compiled on a Linux >>2.6.18-92.1.6.el5<< system on 2008-07-16.
Available extensions:
The C stubs add-on version 2.1.2.
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
RT using linux kernel aio
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.
--
"Sometimes the only way to stay sane is to go a little crazy."
--
"Sometimes the only way to stay sane is to go a little crazy."
我就纳闷了,为什么你们都不读一下本主题中的第2封邮件???
我在里面明显地演示了把libc库直接运行的结果。可惜你们连看
一眼的功夫都没有~~!
库并不是都可以直接运行的,只是glibc做了点儿手脚才让它可以
运行。
Makerules:586:LDFLAGS-c.so += -e __libc_main
csu/version.c:71:__libc_main (void)
void
__libc_main (void)
{
__libc_print_version ();
_exit (0);
}
当然了,前提是内核支持,对于linux这是毫无疑问的:
fs/binfmt_elf.c:
if (loc->elf_ex.e_type != ET_EXEC && loc->elf_ex.e_type != ET_DYN)
goto out;