파일을 버퍼처럼 쓸 수 있을까요?

hyde1004의 이미지

안녕하세요.

네트워크를 통해 들어온 데이터를 파일로 저장하고,
추가되는 데이터를 파일의 끝에 붙이고,
오래된 데이터인 파일의 시작부분은 조금씩 지우는 식으로 해서
파일을 일종의 버퍼처럼 쓸 수 있을까요?

예를 들어,
몇 백KB 정도의 크기가 정해져 있지 않은 데이터가 계속 들어오면,
파일의 끝에 계속 추가하고,
파일 앞부분은 지우는 식으로 해서,
그 파일은 최대 5MB를 유지할 수 있을까요?

마잇의 이미지

    ~$ curl http..[생략]../ubuntu-10.04-beta1-desktop-i386.iso > fifo &
    [2] 18385
    ~$ cat < fifo > lucid.iso
 
 
    ~$ mkfifo fifo
    ~$ cat cinderella.avi > fifo
    [대기중...]
    ^Z
 
    ~$ bg
    ~$ cat < fifo > cinderella2.avi
 
    ~$ smplayer cinderella2.avi 
    This is SMPlayer v. 0.6.9 (SVN r3447) running on Linux
    [재생 됨]
 
    man fifo
 
    man mkfifo

man fifo를 보니 named pipe라고 하네요. ls로 보면 파일은 보이지만 - 속성에 p로 찍힙니다 - 실제 공간은 차지 하지 않는다네요. 커널이 중간에 다 알아서 연결해 준다고 합니다.

-- 마잇


--
마잇

magingax의 이미지

Memory Mapped File 참조..

LISP 사용자모임
http://cafe.naver.com/lisper

LISP 사용자모임
http://cafe.naver.com/lisper
방송기술 개발업체
http://playhouseinc.co.kr