Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

브래의 슬기로운 코딩 생활

운영체제 13주차 정리 - 2 본문

2-1/운영체제

운영체제 13주차 정리 - 2

김브래 2023. 5. 27. 15:30

파일 시스템 - 기본개념과 응용


응용 실습


파일 처리 : 생성 및 시간변경

명령: 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