리눅스 시스템 프로그래밍 : 표준 입출력 다루기 1

프로그래밍상에서 가장 주로 다루는 문제는 문자열과 입출력에 관한 내용이다. 이건 모든 프로그래밍 작업시에 가장 기본이 되는 작업이므로 표준라이브러리 형태로 제공하며, Unix 계열에서는 stdio.h 에서 표준입출력 과 관련된 함수들을 제공한다. 여기에는 scanf 와 printf 와 같은 형식화된 입출력과 관계된일을 하는 함수와 fopen 과 같은 스트림...

리눅스 시스템 프로그래밍 : 표준 입출력 다루기 2

이번 기사는 stdio.h사용하기에 이은 2번째 stdio.h 에 관련된기사이다. 지난번 기사가 주로 파일 open, close 등에 관련된 내용인 반면, 이번기사는 stdio.h 에서 제공하는 여러가지 문자 입/출력 과 관련된 함수들을 다루게 될것이다. 이외에도 open()계열의 저수준 파일 입출력 함수와 fopen()계열의 고수준 입출력 함수의 성능테스...

Unix 파일 다루기 2

파일을 연결(link)에는 "심볼릭 링크" 와 "하드 링크" 의 2가지가 존재한다. 하드링크는 연결을 원하는 원본파일의 inode 를 가지고 파일을 직접 만들지만 (파일복사), linke 는 inode 를 가지고 파일을 만들지 않고, 단지 파일만을 참조한다. 심볼링 링크의 경우 서로 다른 파일시스템 사이를 연결할수 있지만(파일을 단지 참조하는 것이므로), ...

유닉스 파일 다루기

유닉스 파일 다루기 워낙 오래전 문서다. 업데이트가 필요 할 듯. 2009-12-9Unix 는 모든것이 파일로 이루어진다. 일반적인 텍스트 정보, 바이너리 정보 뿐만 아니라, 소켓, 파이프(FIFO), 장치(device), 디렉토리까지 파일로 관리를 한게 된다. 이러한 개념은 Window 사용자에게는 생소한 개념이 될수가 있다.윈도 있어서 c== 파일 열...

버퍼사이즈가 읽기/쓰기 성능에 미치는 영향

버퍼사이즈가 읽기/쓰기 성능에 미치는 영향파일을 읽고 쓸때, 한번에 읽어들이는 데이터의 크기에 따라 읽기/쓰기 성능이 달라진다는 것은 상식선에서 알고 있을 것이다. 대략 알고 있는 바로는 1024 바이트 단위로 읽어올 때 가장 효과적인 것으로 알고 있다. 실제, 이러한 우리의 상식이 올바른지를 확인하기 위해서 버퍼 크기에 따른 읽기/쓰기 성능에 대한 자료...

dup를 이용한 파일지정번호 복사

dup를 이용한 파일지정번호 복사dup 함수가 하는일은 실제로 간단하다. 단순히 파일지정번호를 복사하는 일이다. 그런데 솔직히 말해서 "dup는 파일지정번호를 복사하기 위해서 사용한다" 라고 해보았자.. 도대체 이걸 어디에 사용할수 있을지, 절대 감이 오질 않는다.이래서야 쓰고 싶어도 써먹을수가 없으니 보통 슬픈일이 아니다. 그래서 이번문서에서는, 몇가지...

fcntl을 이용한 파일 및 레코드잠금

fcntl을 이용한 파일 및 레코드잠금fcntl을 이용한 파일잠금, 레코드 잠금의 방법과 그 응용에 대해서 알아본다. 파일잠금과 레코드 잠금은 여러 응용에서 필요로 한다. 멀티 쓰레드(DB와 같은경우에는 단지 파일잠금을 넘어서, 파일의 일정부분을 잠그는 레코드 잠금 기능을 필요로 할 것이다. 특정 레코드영역에 한번에 하나의 쓰레드만 접근하도록 제어해야 하...

seek를 이용한 파일 위치변경

seek를 이용한 파일 위치변경...

select를 이용한 입출력 다중화

select를 이용한 입출력 다중화입출력과 관련된 함수들은 기본적으로 봉쇄/동기적 으로 작동한다. 봉쇄형은 데이터를 처리하는 직관적인 방식이긴 하지만, 두 개 이상의 파일을 처리할 때 문제가 된다. 하나의 파일에서 봉쇄가 되어 버리면 다른 파일의 데이터는 영원히 읽지 못할 수도 있기 때문이다. 비 봉쇄 방식으로 처리하는 방법도 있으나 일반적으로 비봉쇄 방...

IPC : Inter Process Communication

IPC Inter Process Communication 을 의미한다. 유닉스(...