#include #include #include int main(void) { char test1[]="/this/is/a/test1"; char test2[]="/this/is/also/a/test2"; char test3[]="/and/finally/test3"; char *ptest1, *ptest2, *ptest3; ptest1 = test1; ptest2 = test2; ptest3 = test3; printf ("pre base test1: value: %25s addr: %p\n", ptest1, ptest1); printf ("pre base test2: value: %25s addr: %p\n", ptest2, ptest2); printf ("pre base test3: value: %25s addr: %p\n", ptest3, ptest3); ptest1 = basename(test1); ptest2 = basename(test2); ptest3 = basename(test3); printf ("post base test1: value: %25s addr: %p\n", ptest1, ptest1); printf ("post base test2: value: %25s addr: %p\n", ptest2, ptest2); printf ("post base test3: value: %25s addr: %p\n", ptest3, ptest3); } OSX 10.5.8 (gcc 4.0.1) ---------------------- pre base test1: value: /this/is/a/test1 addr: 0xbffffab3 pre base test2: value: /this/is/also/a/test2 addr: 0xbffffa9d pre base test3: value: /and/finally/test3 addr: 0xbffffa8a post base test1: value: test3 addr: 0x801000 post base test2: value: test3 addr: 0x801000 post base test3: value: test3 addr: 0x801000 FreeBSD 6/7/8 (gcc 3/4) ----------------------- pre base test1: value: /this/is/a/test1 addr: 0xbfbfec87 pre base test2: value: /this/is/also/a/test2 addr: 0xbfbfec71 pre base test3: value: /and/finally/test3 addr: 0xbfbfec5e post base test1: value: test3 addr: 0x28202400 post base test2: value: test3 addr: 0x28202400 post base test3: value: test3 addr: 0x28202400 NetBSD 5.0.1 (gcc 4.1.3) ------------------------ pre base test1: value: /this/is/a/test1 addr: 0xbfbfecef pre base test2: value: /this/is/also/a/test2 addr: 0xbfbfecd9 pre base test3: value: /and/finally/test3 addr: 0xbfbfecc6 post base test1: value: test3 addr: 0xbbbdd220 post base test2: value: test3 addr: 0xbbbdd220 post base test3: value: test3 addr: 0xbbbdd220 OpenBSD 4.6 (gcc 3.3.5) ----------------------- pre base test1: value: /this/is/a/test1 addr: 0xcfbfbec4 pre base test2: value: /this/is/also/a/test2 addr: 0xcfbfbea4 pre base test3: value: /and/finally/test3 addr: 0xcfbfbe84 post base test1: value: test3 addr: 0x2fafeac0 post base test2: value: test3 addr: 0x2fafeac0 post base test3: value: test3 addr: 0x2fafeac0 DragonFly 2.3.0-DEV (gcc 4.1.2) --------------------------- pre base test1: value: /this/is/a/test1 addr: 0xbfbff81f pre base test2: value: /this/is/also/a/test2 addr: 0xbfbff809 pre base test3: value: /and/finally/test3 addr: 0xbfbff7f6 post base test1: value: test3 addr: 0x2814b000 post base test2: value: test3 addr: 0x2814b000 post base test3: value: test3 addr: 0x2814b000 OpenSolaris 11 (gcc 3.4.3) ------------------------ pre base test1: value: /this/is/a/test1 addr: 8047d14 pre base test2: value: /this/is/also/a/test2 addr: 8047cf4 pre base test3: value: /and/finally/test3 addr: 8047cd4 post base test1: value: test1 addr: 8047d1f post base test2: value: test2 addr: 8047d04 post base test3: value: test3 addr: 8047ce1 Debian 5/lenny (gcc 4.3.2) -------------------------- pre base test1: value: /this/is/a/test1 addr: 0xbfb52967 pre base test2: value: /this/is/also/a/test2 addr: 0xbfb52951 pre base test3: value: /and/finally/test3 addr: 0xbfb5293e post base test1: value: test1 addr: 0xbfb52972 post base test2: value: test2 addr: 0xbfb52961 post base test3: value: test3 addr: 0xbfb5294b Fedora Core 3 (gcc 3.4.3) ------------------------- pre base test1: value: /this/is/a/test1 addr: 0xbfc30e80 pre base test2: value: /this/is/also/a/test2 addr: 0xbfc30e60 pre base test3: value: /and/finally/test3 addr: 0xbfc30e40 post base test1: value: test1 addr: 0xbfc30e8b post base test2: value: test2 addr: 0xbfc30e70 post base test3: value: test3 addr: 0xbfc30e4d