시스템소프트웨어 3

Changing a file position

lseek 전 시간에 포스팅 한 file position과 이어진다. current file offset에 내용을 바꿔주는 system call 이 있다. 그것은 lseek함수이다. off_t lseek(int filedes, off_t offset,int whence) 함수의 선언부에 첫번째 인자는 오픈한 파일의 Descriptor가 되고, 두번째는 얼마만큼 이동하겠다 하는 offset이며 마지막 세번째는 어디를 기준으로 해서 이동을 하겠나? 이다. 세번째 인자로는 3개의 argument가 있다. SEEK_SET는 파일의 시작점을 기준으로 두번째 인자인 offset만큼 이동을한다.SEEK_CUR는 현재 위치를 기준으로 offset만큼 이동을 한다.SEEK_END는 파일의 끝을 기준으로 offset만큼 ..

File Position(Offset)

파일을 구성하고 있는 각 바이트의 위치를 file offset이라 하고, 각 위치마다 1바이트씩 가지고 있는 파일이며 첫 번째 위치를 0으로 마지막의 있는 위치를 EOF라 표현한다. file offset앞에 current가 붙으면 파일을 읽고 쓰고 할 때 시작 위치를 표시를 해주는 역할을 해준다. Reading Files ssize_t read(int fd, void* buf, size_t count) 위의 코드는 파일에서 데이터를 읽어드리는 함수이며 fd는 오픈한 파일을 Descriptor 하고 buf는 데이터를 읽어드릴 메모리의 시작 위치이며 count는 내가 몇 byte만큼 읽을 건지 설정해주는 인자이다. char buf[512]; int fd;/* file descriptor */ int nbyt..

Unix File 타입

Unix File Types 1. Regular file:데이터를 저장하는 파일이며 text 파일 또는 binary 파일 둘다 unix에선하나의 파일로 취급함 2. Directory file 3. Device file: 디바이스 파일에는 Character 디바이스와 Block 디바이스가 있다. 먼저 Character 디바이스는 디바이스와 컴퓨터 사이에서 이동할 수 있는 단위는 byte이다. ex)키보드,모니터, ... (입력과 출력이 모두 바이트 단위) block는 특정 크기의 단위로 512b,1kb등을 주고받는다. ex)cd-rom,usb (특정 단위들을 가지고 사용) 4. FIFO: 프로세스 끼리 서로 통신할 때 사용하는 파일 5. Soket: 원격에 있는 컴퓨터와 서로 통신하기 위한 파일. Unix..