Unter Solaris:
basename.c
#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.out
Ausgabe:
libc.so.1 => /lib/libc.so.1
libm.so.1
......
Unter Linux:
basename.c
#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.out
Ausgabe:
libc.so.6 => /lib/libc.so.6
......
Basiert Solaris libc auf GNU libc? Ist libc.so.1
unter Solaris dasselbe wie libc.so.6
unter Linux?
strlcpy()
unter Linux oder anderen Systemen, die keinen starken BSD-Einfluss haben.