K 개발자

링크 파일 생성 본문

유닉스(Unix)/시스템 프로그래밍

링크 파일 생성

ddingz 2021. 8. 16. 15:35

하드 링크

하드 링크hard link는 파일에 접근할 수 있는 파일명을 새로 생성하는 것이다.
하드 링크는 기존 파일과 동일한 inode를 사용한다.
하드 링크를 생성하면 inode에 저장된 링크 개수link count가 증가한다.

하드 링크 생성 : link(2)

#include <unistd.h>

int link(const char *existing, const char *new);
// existing : 기존 파일의 경로, new : 새로 생성할 링크의 경로

심볼릭 링크

심볼릭 링크symbolic link는 기존 파일에 접근할 수 있는 다른 파일을 만든다.
기존 파일과 다른 inode를 사용하며, 기존 파일의 경로를 저장한다.

심볼릭 링크 생성 : symlink(2)

#include <unistd.h>

int symlink(const char *name1, const char *name2);
// name1 : 기존 파일의 경로, name2 : 새로 생성할 링크의 경로

심볼릭 링크의 정보 검색 : lstat(2)

#include <sys/types.h>
#include <sys/stat.h>

int lstat(const char *path, struct stat *buf);
// path : 심볼릭 링크의 경로, buf : 검색한 파일 정보를 저장할 구조체 주소

심볼릭 링크의 내용 읽기 : readlink(2)

#include <unistd.h>

ssize_t readlink(const char *restrict path, char *restrict buf, size_t bufsiz);
// path : 심볼릭 링크의 경로, buf : 읽어온 내용을 저장할 버퍼, bufsiz : 버퍼의 크기

원본 파일의 경로 읽기 : realpath(3)

#include <stdlib.h>

char *realpath(const char *restrict file_name, char *restrict resolved_name);
// file_name : 심볼릭 링크명, resolved_name : 경로명을 저장할 버퍼 주소

'유닉스(Unix) > 시스템 프로그래밍' 카테고리의 다른 글

시스템 관련 정보 검색과 설정  (0) 2021.08.16
디렉토리 관련 함수  (0) 2021.08.16
파일 접근 권한 제어  (0) 2021.08.16
파일 정보 검색  (0) 2021.08.16
유닉스 파일의 특징  (0) 2021.08.16
Comments