DIRNAME(3) Linux Programmer's Manual DIRNAME(3) NAME dirname, basename - #include char *dirname(char *path); char *basename(char *path); dirname basename null . , dirname , () '/', basename '/' . '/' , '/' . path '/', dirname ".", basename path . path "/", dirname basename "/". path NULL , dirname basename ".". dirname , "/", basename , . dirname basename path , , . , dirname basename , . ( SUSv2) , dirname basename : path dirname basename "/usr/lib" "/usr" "lib" "/usr/" "/" "usr" "usr" "." "usr" "/" "/" "/" "." "." "." ".." "." ".." (EXAMPLE) char *dirc, *basec, *bname, *dname; char *path = "/etc/passwd"; dirc = strdup(path); basec = strdup(path); dname = dirname(dirc); bname = basename(basec); printf("dirname=%s, basename=%s\n", dname, bname); free(dirc); free(basec); (RETURN VALUE) dirname basename null . BUGS glibc , () 2.2.1, dirname '/' . NULL , (segmentation violation). (CONFORMING TO) SUSv2 (SEE ALSO) dirname(1), basename(1) [] [] 2003/05/13 Linuxman http://cmpp.linuxforum.net man man https://github.com/man-pages-zh/manpages- zh GNU 2000-12-14 DIRNAME(3)