본문 바로가기

프로그래밍(TA, AA)/C C++

(24)
[시스템프로그래밍] 파일과 디렉토리 유닉스에서 파일은 일반 파일과 특수 파일 그리고 디렉토리로 구분할 수 있습니다. 일반 파일은 텍스트 파일, 실행 파일 등 텍스트나 바이너리 형태의 데이터를 저장하고 있는 파일입니다. 유닉스에서 파일은 데이터를 저장하는 데는 물론, 장치를 구동하는 데도 사용합니다. 다른 파일과 달리 장치 관련 특수 파일을 장치 파일이라고도 합니다. 디렉토리는 해당 디렉토리에 속한 파일을 관리하는 특별한 파일입니다. 유닉스에서는 디렉토리도 파일로 취급합니다. 유닉스에서 파일은 파일명과 inode, 데이터 블록으로 구성됩니다. 파일명은 사용자가 파일에 접근할 때 사용합니다. inode는 외부적으로는 번호로 표시되며, 파일의 소유자나 크기 등 파일에 관한 정보와 파일의 실제 데이터를 저장하고 있는 데이터 블록의 위치를 나타내는..
[시스템프로그래밍] 고수준 파일 입출력 고수준 파일 입출력은 표준 입출력 라이브러리라고도 하며, C 언어의 표준함수로 제공됩니다. 저수준 파일 입출력은 바이트 단위로만 입출력을 수행하므로, 읽어들인 데이터를 가공하는 추가적인 작업이 필요합니다. 이와달리 고수준 파일 입출력은 문자 단위, 행 단위, 버퍼 단위, 형식 기반 입출력 등 편리한 기능을 제공하므로, 프로그램의 용도에 맞게 적당한 함수를 선택하면 됩니다. 파일 포인터저수준 파일 입출력에서는 열린 파일을 가리키는 데 파일 기술자를 사용하는 한편, 고수준 파일 입출력에서는 파일 포인터를 사용합니다. 파일 포인터는 디스크에서 메모리로 읽어온 파일의 위치(주소)에 관한 정보를 담고 있는 포인터입니다. 또한 파일 기술자는 정수형이지만, 파일 포인터는 시스템 헤더 파일에 정의되어 있는 FILE *..
[시스템프로그래밍] 저수준 파일 입출력 파일은 관련 있는 데이터의 집합으로 하드 디스크 같은 저장 장치에 일정한 형태로 저장됩니다. 파일은 데이터를 저장하는 데는 물론, 데이터를 전송하거나 장치에 접근하는 데도 사용합니다. 유닉스에서 파일은 크게 일반 파일과 특수 파일로 구분할 수 있습니다. 종류 용도 일반 파일 텍스트 바이너리 형태의 데이터를 저장하는 파일 특수 파일 데이터 전송, 장치 접근에 사용하는 파일 특수 파일의 생성과 삭제 및 입출력은 특수 파일별로 약간씩 차이가 있습니다. 특수 파일에 대한 입출력 방법은 다른 장에서 살펴보고, 이 장에서는 일반 파일을 중심으로 데이터를 쓰거나 읽는 방법을 알아봅니다. 유닉스에서 파일을 읽고 쓰는 방법은 저수준 파일 입출력과 고수준 파일 입출력으로 구분할 수 있습니다. 저수준 파일 입출력은 유닉스 ..
[시스템프로그래밍] 유닉스 시스템 프로그래밍 개요 언어와 운영체제 그리고 프로그래밍 방법론에 따라 다양한 프로그래밍 방식이 있지만, 유닉스를 기반으로 한 시스템 프로그래밍에 대해서 알아보겠습니다. 시스템 프로그래머가 되려는 사람은 필수적으로 이 책의 내용을 공부해야 합니다. 유닉스 시스템 관리자가 되려는 사람도 이 책의 내용만큼은 기본적으로 이해아혹 있어야 합니다. 시스템 관리자도 직접 프로그램을 작성해 필요한 도구를 개발하기도 하고, 소스로 배포되는 소프트웨어를 컴파일해 설치해야 할 때도 있기 때문입니다. 유닉스 시스템에서 제공하는 시스템 호출과 라이브러리 함수를 사용해 시스템 프로그램을 작성하는 방법에 대해 알아보려고 합니다. 유닉스 시스템을 다루려면 대한 기본적인 이해와 C 언어를 이용해 프로그램을 작성할 수 있는 능력이 필요합니다. 유닉스 시스템..