DIRNAME 3 2000-12-14

中文man手册

DIRNAME

NAME
æ»è§
æè¿°
ç¤ºä¾ (EXAMPLE)
è¿åå¼ (RETURN VALUE)
BUGS
éµå¾ª (CONFORMING TO)
å¦è§ (SEE ALSO)
[䏿çç»´æ¤äºº]
[ä¸æçææ°æ´æ°]
ãä¸å½Linux论åmanæå页翻è¯è®¡åã
è·

NAME

dirname, basename - è§£æè·¯å¾ç»æé¨å

æ»è§

#include <libgen.h>

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)

[䏿çç»´æ¤äºº]

徿 <xuming@users.sourceforge.net>

[ä¸æçææ°æ´æ°]

2003/05/13

ãä¸å½Linux论åmanæå页翻è¯è®¡åã

http://cmpp.linuxforum.net

è·

æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã
䏿 man æå页计åï¼https://github.com/man-pages-zh/manpages-zh