반응형

dirname(3)

#include <libgen.h>

char *dirname(char *path);

dirname(3) 함수는 path에서 directory부분을 얻는 함수입니다. return된 문자열은 null-terminated 문자열입니다. 

basename(3)함수는 파일명을 얻는 함수라면, dirname(3)은 directory명을 얻는 함수입니다.

 

 

동작 예)

   path                       dirname( )        basename( )
   /usr/include/stdio.h       /usr/include      stdio.h
   /usr/include               /usr              include
   /usr/                      /                 usr
   usr                        .                 usr
   /                          /                 /
   .                          .                 .
   ..                         .                 ..
   [null]                     .                 .

※주의: dirname(3)의 파라미터 path는 Input후에 변형이 일어날 수 있으므로 
   원본에 변형이 일어나면 안되는 경우에는 복사본을 파라미터로 전달하기 바랍니다.

※주의: dirname(3)함수는 이름과는 달리 path가 모두 directory이면 상위 directory를 return합니다. 
   이는 실제 디렉토리인지 여부를 판단해서 하는 것이 아니라 단순히 문자열을 기준으로 하기 때문입니다.
   따라서 path가 파일에 대한 path이면 directory를 return해주지만 
   그렇지 않으면 상위 디렉토리가 return된다는 것을 알고 사용해야 합니다.

 

파라미터

path
    - 파일 또는 디렉토리에 대한 상대 path 또는 절대 path

※주의: path 변수의 값은 함수 내부에서 변경이 일어날 수 있으므로 
     path변수를 값을 계속 유지해야 하는 경우에는 복제본을 사용하기 바랍니다.

 

 RETURN

문자열
    - directory명에 대한 null-terminated 문자열을 return합니다. 
      return되는 문자열은 path에서 directory부분을 return하나 
      path가 directory이면 상위 디렉토리가 return됩니다.
      

 


see also :

    File 속성 정보 및 파일 관리 Library

    Directory 정보 조회 및 관리 Library

    System Call File I/O Library

    Stream File I/O Library

 

 

 

반응형

'C언어 header > libgen.h' 카테고리의 다른 글

basename(3) - path에서 끝 이름을 얻는 함수  (0) 2019.09.23
블로그 이미지

자연&사람

행복한 개발자 programmer since 1995.

,