首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solaris libc是否基于GNU libc?

Solaris libc是否基于GNU libc?
EN

Unix & Linux用户
提问于 2012-03-21 05:51:04
回答 2查看 6.8K关注 0票数 6

关于Solaris:

basename.c

代码语言:javascript
复制
#include <stdio.h>
#include <libgen.h>

int main(int argc, char* argv[])
{
    int len = strlen(argv[0]);
    char *bsname = basename(argv[0]);
    printf("%s\n", bsname);
    printf("%d\n", len);
    return 0;
}
代码语言:javascript
复制
cc basename.c
ldd a.out

输出:

代码语言:javascript
复制
libc.so.1 => /lib/libc.so.1
libm.so.1
......

在Linux上:

basename.c

代码语言:javascript
复制
#include <stdio.h>
#include <libgen.h>

int main(int argc, char* argv[])
{
    int len = strlen(argv[0]);
    char *bsname = basename(argv[0]);
    printf("%s\n", bsname);
    printf("%d\n", len);
    return 0;
}
代码语言:javascript
复制
gcc basename.c
ldd a.out

输出:

代码语言:javascript
复制
libc.so.6 => /lib/libc.so.6 
......

Solaris libc是基于GNU libc的吗?Solaris上的libc.so.1与Linux上的libc.so.6相同吗?

EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2012-03-21 06:32:02

Solaris C库不是基于GNU C库的。它们都实现了C标准和POSIX接口以及其他一些标准,但除此之外,它们并没有共享共同的传统。

Solaris libc.so.1将其历史追溯到AT&T系统V库。

GNUlibc.so.6基于glibc2.0或更高版本。Linux库的早期版本(例如libc.so.5)是较早的glibc1.x版本的一个分支。

您会发现这两个库之间有一些不同。例如,Solaris libc包含glibc没有的一些字符串操作,strlcpy()对我来说是最明显的。

票数 16
EN

Unix & Linux用户

发布于 2012-03-21 06:23:38

Solaris libc根本不是基于GNU libc的,但它们提供了类似的接口。

票数 3
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/34650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档