본문 바로가기
Language/C언어

C048_unlink 함수 사용하기

by OdOp 관리자 2024. 1. 6.
SMALL

unlink는 파일을 삭제하는 명령어입니다. 

 

어떻게 삭제가 진행되는 것일까요???

 

진행에 앞서서 inode에 대해 조금은 알아야 할 필요가 있습니다. 

 

inode

inode는 유닉스 계의의 운영체제에서 사용되고 있는 파일 관리자라고 생각하면 좋을 것 같습니다. 

inode에는 파일의 권한, 형태, 고유 번호, 소유자 및 그룹, 원본 데이터의 주소등 파일에 대한 모든 것이 기록이 되어 있습니다. 

inode 설명

 

그림에서 처럼 하드링크와 메모리 사이를 inode가 연결을 해줍니다. 

메모리에 접근을 하여 관리를 해주는 역할을 하는 것입니다. 

 

 

여기서 unlink는 하드링크와  inode의 사이를 끊어주고 하드링크를 삭제하는 역할을 합니다. 

그렇게 되면 이제 더 이상 메모리에 접근을 하지 못해 파일이 삭제되는 것입니다. 

unlink를 사용해 보도록 하겠습니다. 

 

unlink

#include <unistd.h>

int	unlink(const char *path);

 

path에 등록된 파일을 삭제해 줍니다. 성공 시 0을 리턴하고 실패 시 -1을 리턴합니다. 

 

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

int main(void)
{
    if (unlink("./exist") == 0)
        printf("exist is deleted.\n");
    else
        printf("exist does not exist.\n");
    if (unlink("./unexist") == 0)
        printf("unexist is deleted.\n");
    else
        printf("unexist does not exist.\n");
    return (0);
}

 

출력값입니다. 

exist is deleted.
unexist does not exist.

 

LIST

'Language > C언어' 카테고리의 다른 글

C050_wait 함수 사용하기  (1) 2024.01.08
C049_fork 함수 사용하기  (2) 2024.01.07
C047_access 함수 사용하기  (2) 2024.01.05
C046_exit 함수 사용하기  (0) 2024.01.04
C045_perror함수 사용하기  (0) 2024.01.03