
일반 파일
특수 파일
심볼릭 링크
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);
}
}