반응형
basename(3)
#include <libgen.h>
char *basename(char *path);
basename(3) 함수는 path의 끝 node의 이름을 얻는 함수입니다. path가 파일 정보이면 파일명을 얻는 함수입니다. return된 문자열은 null-terminated 문자열입니다.
dirname(3)함수가 directory명을 얻는 함수라면, basename(3)은 파일명을 얻을 때에 주로 사용하는 함수입니다.
동작 예).
path dirname( ) basename( )
/usr/include/stdio.h /usr/include stdio.h
/usr/include /usr include
/usr/ / usr
usr . usr
/ / /
. . .
.. . ..
[null] . .
파라미터
path
- 파일에 대한 상대 path 또는 절대 path
※주의: path변수의 값은 basename(3) 함수 호출 후에 변형이 일어날 수 있으므로
원본에 변형이 일어나면 안되는 경우에는 복사본을 파라미터로 전달하기 바랍니다.
RETURN
문자열
- 파일 명에 대한 null-terminated 문자열
활용 예제
Sample) 명령어만 잘라내기
#include <stdio.h>
#include <string.h>
#include <libgen.h>
int main(int argc, char **argv)
{
char path[1024];
char program_name[1024];
strcpy(path, argv[0]);
strcpy(program_name, basename(path));
printf("%s\n", program_name);
return 0;
}
위의 예제는 프로그램을 실행할 때에 sample 또는 ./sample 또는 /home/user1/bin/sample 처럼 실행하더라도 명령어만 잘라내고 싶은 경우에 사용할 수 있다.
see also :
반응형
'C언어 header > libgen.h' 카테고리의 다른 글
dirname(3) - path에서 directory 부분 얻기 (0) | 2019.09.23 |
---|