readlink() function in C language
C함수 readlink()는 심볼릭 링크의 원래 위치나 파일 정보를 구합니다. readlink()의 주의할 점은 버퍼에 정보를 저장하면서 NULL 코드를 추가하지 않습니다. 그러므로 반드시 버퍼를 초기화한 후에 호출합니다.
- 헤더: unistd.h
- 형태: ssize_t readlink(const char *path_name, char *buff, size_t buff_size)
- 인수: const char *path 심볼릭 링크 이름
char *buff 정보를 받아 올 버퍼
size_t buff_size 퍼버의 크기 - 반환: ssize_t == -1 실패
> 0 성공시 정보의 바이트 수
C언어 readlink() 함수 예제
심볼릭 링크 /tmp/lnk_home의 원래 위치를 출력합니다.
#include <stdio.h>
#include <string.h> // memset() strerror()
#include <unistd.h> // readlink()
#include <errno.h> // errno
int main( void){
char buff[1024];
int sz_link;
memset( buff, 0, sizeof( buff));
sz_link = readlink( "/tmp/lnk_home", buff, sizeof( buff));
if ( 0 < sz_link){
printf( "return = %d, link=%s\n", sz_link, buff);
} else {
printf( "error number= %d, error str= %s\n", errno, strerror( errno));
}
return 0;
}
C언어 readlink() 예제 실행 결과
$ gcc test.c
$ ./a.out
error number= 2, error str= No such file or directory
$ ln -s /home/badayak /tmp/lnk_home
$ ./a.out
return = 13, link=/home/badayak
$
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
C언어 로그파일 작성 방법 (2) | 2021.11.10 |
---|---|
rs485 통신 프로토콜 응답 처리 주의 사항 (3) | 2021.11.04 |
C언어 배열 초기화 함수와 주의사항 (2) | 2021.09.28 |