关于Solaris:
#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;
}cc basename.c
ldd a.outlibc.so.1 => /lib/libc.so.1
libm.so.1
......在Linux上:
#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;
}gcc basename.c
ldd a.outlibc.so.6 => /lib/libc.so.6
......Solaris libc是基于GNU libc的吗?Solaris上的libc.so.1与Linux上的libc.so.6相同吗?
发布于 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()对我来说是最明显的。
发布于 2012-03-21 06:23:38
Solaris libc根本不是基于GNU libc的,但它们提供了类似的接口。
https://unix.stackexchange.com/questions/34650
复制相似问题