브래의 슬기로운 코딩 생활
운영체제 13주차 정리 - 2 본문
파일 시스템 - 기본개념과 응용
응용 실습
파일 처리 : 생성 및 시간변경
명령: touch [-t YYYYMMDDhhmm.ss] filename
• 파일의 시간 정보 수정을 주목적으로 함
• 지정한 파일이 없을 때에는 파일을 생성
• 시간 생성을 위한 옵션으로 “-t”를 사용
– 예: touch –t 202104200910.00
• 일반적 옵션:
– -a : 접근 시간만 변경
– -m : 수정 시간만 변경
시간 확인
• 명령 예:
– $ ls -l --full-time --time=atime
– $ ls -l --full-time --time=ctime
– $ ls -l --full-time --time=birth
파일 처리 : 타입 보기
명령: file filename
• 지정한 파일의 타입을 출력
파일 처리 : 복사
명령: cp [원본] [경로 또는 대상파일]
• 지정한 “원본”파일을 “대상파일”또는 “경로”하단에 복사
• 대표적인 옵션:
– -a : 속성까지 복사
– -R, -r : 디렉터리 하단까지 복사
– -b : 동일한 파일이 있으면 백업본 생성(~)
– -i : 덮어쓰기를 할 지를 묻기
파일 처리 : 링크
명령: ln [-s] [원본] [대상파일]
• 원본 파일을 대상파일로 링크
• 파일의 내용은 동일하며 껍데기만 복사되는 원리
– 윈도우의 바로가기 아이콘과 유사한 개념
• 옵션:
– -s: 심볼릭 링크로 파일을 생성
– “”: 하드 링크로 파일을 생성
링크의 타입
• 하드 링크(hard link)
– i-node는 동일하나 껍데기가 다른 파일
• 심볼릭 링크(symbolic link)
– i-node는 다르나 껍데기가 다른 파일의 이름을 참조
파일 처리 : 이동
명령: mv [원본] [대상]
• 지정한 원본파일을 대상파일로 변경
• 파일이름 변경 기능도 수행
파일 처리 : 삭제
명령: rm [옵션] [파일명 또는 디렉터리명]
지정한 파일이나 디렉터리를 삭제
옵션
• -i: 확인 후 삭제
• -f: 무조건 삭제
• -r: 디렉터리 삭제
디렉터리 처리 : 현재 위치 확인
명령: pwd
• Present Working Directory
• 현재 작업하고 있는 디렉터리 위치를 출력
디렉터리 처리 : 위치 이동
명령: cd [경로: 절대/상대]
• “.” 현재 위치
• “..” 상위 위치
• “” 자신의 홈 위치로 되돌아가기
• “~계정이름“ 지정한 계정의 홈 위치로 이동
• “-” 직전 작업 위치로 이동
디렉터리 처리 : 생성
명령: mkdir [디렉터리명]
• 새로운 디렉터리 생성
• 옵션
– -p: 디렉터리 생성에 명시된 하위 디렉터리도 함께 생성
디렉터리 처리 : 삭제
명령: rmdir [디렉터리명]
• 지정한 디렉터리를 삭제
• 지정한 디렉터리에는 엔트리가 없어야 함
디렉터리 처리 : 사용량 확인
명령: du [경로]
• 지정한 경로의 사용량을 출력
• 일반적 옵션:
– -h : 사용자 인식을 고려한 사이즈로 표시(1K, 234M, 2G 등)
– -k : 킬로바이트(kilobyte) 단위로 표시
– -m : 메가바이트(megabyte) 단위로 표시
– -s : 요약정보(summary)만 표시
디스크 처리 : 사용량 확인
명령: df
• 디스크의 사용량을 출력
• 일반적 옵션:
– -h : 사용자 인식을 고려한 사이즈로 표시(1K, 234M, 2G 등)
– -k : 킬로바이트(kilobyte) 단위로 표시
– -m : 메가바이트(megabyte) 단위로 표시
디스크 처리 : 블록장치 정보 출력
명령: lsblk
• 시스템의 블록장치의 정보를 출력
• 일반적 옵션 :
– -f : 파일시스템을 같이 표시
저수준 파일 접근
유닉스 파일시스템
유닉스는 프로세스, 장치 및 파일들에 대하여 모두 파일시스템으로 관리
시스템의 모든 자원의 제어는 파일접근으로 가능
파일 입출력(I/O)를 위한 기본적인 시스템 함수들을 제공
저수준 파일 처리: 파일 기술자를 통해 접근하는 방식
대표적 파일 처리용 시스템 함수들
• open() : 파일 및 장치 접근
• close() : 접근 해제
• read() : 파일이나 장치로부터 읽기
• write() : 파일이나 장치에 쓰기
저수준 파일 접근과 해제
파일 접근
함수: open()
• 파일 및 장치 접근
• 프로세스를 위한 파일 기술자를 생성
인자
• *pathname : 접근할 파일 또는 장치명
• flags : 접근 모드(예: O_RDONLY, O_WRONLY, O_RDWR, O_CREAT 등)
• (옵션) mode : 생성 권한(파일 생성 시)
결과 값:
• 성공 : 양수
• 실패 : -1
파일 접근
함수: open()
• 접근 모드(flags)
함수: open()
• 생성 권한(mode)
접근 해제
함수: close()
• 지정한 파일 기술자에 해당하는 접근을 해제
인자
• fd : 접근 해제할 파일 기술자
결과 값:
• 성공 : 0
• 실패 : -1
저수준 파일 읽기
파일 읽기
함수 : read()
• 파일의 내용을 주어진 길이(개수)만큼 읽음
인자 :
• fd : 읽어 들일 파일의 기술자
• *buf : 읽어 들인 파일의 내용
• count : 읽을 최대 길이(일반적으로 buf의 크기)
결과 값:
• 성공 : 읽어 들인 내용의 길이
• 실패 : -1
저수준 파일 쓰기
파일 쓰기
함수 : write()
• 내용을 주어진 길이(개수)만큼 파일에 기록
인자 :
• fd : 파일의 기술자
• *buf : 기록할 내용
• count : 기록할 내용의 길이(일반적으로 buf의 크기)
결과 값:
• 성공 : 기록한 내용물 길이
• 실패 : -1
저수준 파일 생성과 삭제
파일 생성
함수: creat()
• 지정한 이름의 파일을 생성
인자:
• *pathname : 생성할 파일의 이름
• mode : 접근 권한(open() 함수의 mode와 동일)
결과 값:
• 성공: 파일 기술자
• 실패: -1
파일 삭제
함수: unlink()
• 지정한 이름의 파일을 생성
인자:
• *pathname : 삭제할 파일의 이름
결과 값:
• 성공: 0
• 실패: -1
고수준 파일 처리
고수준 파일 처리
FILE 구조체를 통하여 파일을 접근하는 방식
대표적 파일 처리용 시스템 함수들
• fopen() : 파일 및 장치 접근
• fclose() : 접근 해제
• fread(), fgets() : 파일이나 장치로부터 읽기
• fwrite(), fputs() : 파일이나 장치에 쓰기
고수준 파일 처리 함수
파일 접근
함수: fopen()
• 고수준 방식의 파일 및 장치 접근
• 파일 접근을 위한 FILE 구조체 포인터 생성
인자
• *pathname : 접근할 파일 또는 장치명
• *mode : 접근 모드
결과 값:
• 성공 : FILE 구조체 포인터
• 실패 : NULL
접근 해제
함수: fclose()
• 지정한 파일 포인터에 해당하는 접근을 해제
인자
• *stream : 접근 해제할 FILE 포인터
결과 값:
• 성공 : 0
• 실패 : EOF (-1)
파일 읽기
함수: fread()
• 지정한 파일 포인터에서 데이터 읽기
인자
• *ptr : 기록될 공간
• size : 각 원소의 크기(바이트)
• nmemb : 데이터(원소들)의 개수
• *stream : 접근 할 FILE 포인터
결과 값:
• 성공 : 읽을 데이터의 개수
• 실패 : 0
파일 쓰기
함수: fwrite()
• 지정한 파일 포인터에 데이터를 기록
인자
• fread()의 패턴과 동일
결과 값:
• 성공 : 기록한 데이터의 개수
• 실패 : 0
파일 읽기(라인 단위)
함수: fgets()
• 지정한 파일 포인터에서 데이터 읽기
인자
• *s : 기록될 공간
• size : 최대 크기
• *stream : 접근 할 FILE 포인터
결과 값:
• 성공 : 기록된 공간의 주소
• 실패 : NULL
파일 쓰기(라인 단위)
함수: fputs()
• 지정한 파일 포인터에 데이터를 기록
인자
• fgets()의 패턴과 동일
결과 값:
• 성공 : 기록한 데이터의 개수
• 실패 : -1
'2-1 > 운영체제' 카테고리의 다른 글
운영체제 14주차 정리 - 1 (0) | 2023.06.02 |
---|---|
운영체제 13주차 정리 - 3 (0) | 2023.05.27 |
운영체제 13주차 정리 - 1 (0) | 2023.05.26 |
운영체제 12주차 정리 - 2 (0) | 2023.05.21 |
운영체제 12주차 정리 - 1 (0) | 2023.05.21 |