C & LINUX

C / LINUX symlink() readlink()

Ocean_ 2022. 5. 2. 19:09

함수 기능

symlink

심볼릭 링크를 생성하는 시스템호출

link를 통해 만들어진 하드 링크의 한계를 해결하기 위해 만들어진 것

readlink

심볼릭 링크를 읽는 시스템 호출

심볼릭링크

링크 연결로 원본 파일을 직접 사용하는 것과 같은 효과를 내는 링크

함수 원형

#include <unistd.h>

int symlink(const char *existingpath, const char *newpath);
ssize_t readlink(const char *filepath, void *buf, size_t bufsize);

함수 파라메터

actualpath

실제 파일의 경로 이름, 존재하지않아도됨

sympath

심볼릭 링크의 이름

pathname

링크로 연결된 원래파일

bufsize

문자열 저장될 버퍼크기

함수 예제

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>

int main(int argc, char *argv[]){
    if(argc !=3){
        fprintf(stderr,"usage : %s<actualname><symname>\n",argv[0]);
        exit(1);
    }

    if(symlink(argv[1],argv[2])<0){
        fprintf(stderr,"symlink error\n");
        exit(1);
    }
    else
        printf("symlink: %s-> %s\n",argv[2],argv[1]);
    exit(0);
}

symlink의 인자위치 주의

함수 결과

 

리눅스시스템 프로그래밍 - 홍지만 저

교재 내에 있는 예제를 바탕으로 작성한 글 입니다.