리눅스

김민원·2024년 9월 20일
post-thumbnail


일반 파일
특수 파일
심볼릭 링크

inode
inode는 파일에 대한 정보를 저장하고 있는 객체로, 실제로 디스크에 저장되어 있다. 리눅스 커널의 입장에서는 파일의 정보를 관리하는 자료 구조로 사용된다. inode는 외부적으로는 번호로 표현하며, 내부적으로는 두 부분으로 나누어 정보를 저장한다.

$ ls 디렉터리 정보
$ ls -l inode의 정보를 읽어서 출력
$ ls -i 파일의 inode 번호 확인

컴퓨터나 외부 클라우드를 사용할 때는 접근 권한을 줄 수 없기 때문에 읽기, 실행 등 지정 권한만 부여하기 위해 권한이 있다.

디렉터리
리눅스에서는 디렉터리도 파일로 취급

디렉터리 생성
#include <sys/stat.h>
#include <stdlib.h>
#include <stdio.h>

int main() {
	if (mkdir("han", 0755) == -1){
    	perror("han");
        exit(1);
    }
}
디렉터리 삭제
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>

int main() {
    if (rmdir("han") == -1){
        perror("han");
        exit(1);
    }
}
$ ls
$ ch2_2.out
$ ls

C가 어려운이유 배열을 표현할 때 포인터로 표현 이러한 위치 정보를 가져오기 위해서는 포인터를 넘겨서 값을 사용해야 된다.

$ gcc -o 출력파일이름 소스파일이름

현재 디렉터리의 위치 검색

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

int main() {
    char *cwd;
    char wd1[BUFSIZ];
    char wd2[10];

    getcwd(wd1, BUFSIZ);
    printf("wd1 = %s\n", wd1);
    cwd = getcwd(NULL, BUFSIZ);
    printf("cwd1 = %s\n", cwd);
    free(cwd);

    cwd = getcwd(NULL, 0);
    printf("cwd2 = %s\n", cwd);
    free(cwd);

    if(getcwd(wd2, 10) == NULL) {
        perror("getcwd");
        exit(1);
    }
}
profile
개발하는 척

0개의 댓글