Back

운영체제 - 파일, 파이프, 소켓 프로그래밍

파일, 파이프, 소켓 프로그래밍

파일, 파이프, 소켓 프로그래밍

파일, 파이프, 소켓 프로그래밍

파일

  • 아무리 큰 파일이라도 파일 내의 데이터는 개념적으로 한줄로 저장됨

파일 기술자

  • open() 함수로 파일을 열면 파일 기술자 fd를 얻음
  • 파일 기술자는 파일 접근 권한 외에 offset 정보도 보관
  • 처음 파일이 열리면 offset은 맨 앞
  • 읽기 혹은 쓰기를 하면 offset은 계속 전진

파일을 이용한 통신

%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF,%20%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B3,%20%E1%84%89%E1%85%A9%E1%84%8F%E1%85%A6%E1%86%BA%20%E1%84%91%E1%85%B3%E1%84%85%E1%85%A9%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%86%E1%85%B5%E1%86%BC%208848e4dfa61e4194b37ece89c0fd9933/Untitled.png
%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF,%20%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B3,%20%E1%84%89%E1%85%A9%E1%84%8F%E1%85%A6%E1%86%BA%20%E1%84%91%E1%85%B3%E1%84%85%E1%85%A9%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%86%E1%85%B5%E1%86%BC%208848e4dfa61e4194b37ece89c0fd9933/Untitled.png

파이프를 이용한 통신

%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF,%20%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B3,%20%E1%84%89%E1%85%A9%E1%84%8F%E1%85%A6%E1%86%BA%20%E1%84%91%E1%85%B3%E1%84%85%E1%85%A9%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%86%E1%85%B5%E1%86%BC%208848e4dfa61e4194b37ece89c0fd9933/Untitled%201.png
%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF,%20%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B3,%20%E1%84%89%E1%85%A9%E1%84%8F%E1%85%A6%E1%86%BA%20%E1%84%91%E1%85%B3%E1%84%85%E1%85%A9%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%86%E1%85%B5%E1%86%BC%208848e4dfa61e4194b37ece89c0fd9933/Untitled%201.png

  • 파이프는 파일 기술자를 fd[2]와 같이 2개의 원소를 가진 배열로 정의
  • fd[0] = 읽기용
  • fd[1] = 쓰기용
  • 해당 코드에서는 부모에서는 close(.[1]), 자식에서는 close(.[0]) 으로 해당 로직에서 쓰지 않는 파이프는 종료해주고 있다.

소켓을 이용한 네트워킹

%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF,%20%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B3,%20%E1%84%89%E1%85%A9%E1%84%8F%E1%85%A6%E1%86%BA%20%E1%84%91%E1%85%B3%E1%84%85%E1%85%A9%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%86%E1%85%B5%E1%86%BC%208848e4dfa61e4194b37ece89c0fd9933/Untitled%202.png
%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF,%20%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B3,%20%E1%84%89%E1%85%A9%E1%84%8F%E1%85%A6%E1%86%BA%20%E1%84%91%E1%85%B3%E1%84%85%E1%85%A9%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%86%E1%85%B5%E1%86%BC%208848e4dfa61e4194b37ece89c0fd9933/Untitled%202.png

%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF,%20%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B3,%20%E1%84%89%E1%85%A9%E1%84%8F%E1%85%A6%E1%86%BA%20%E1%84%91%E1%85%B3%E1%84%85%E1%85%A9%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%86%E1%85%B5%E1%86%BC%208848e4dfa61e4194b37ece89c0fd9933/Untitled%203.png
%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF,%20%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B3,%20%E1%84%89%E1%85%A9%E1%84%8F%E1%85%A6%E1%86%BA%20%E1%84%91%E1%85%B3%E1%84%85%E1%85%A9%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%86%E1%85%B5%E1%86%BC%208848e4dfa61e4194b37ece89c0fd9933/Untitled%203.png

%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF,%20%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B3,%20%E1%84%89%E1%85%A9%E1%84%8F%E1%85%A6%E1%86%BA%20%E1%84%91%E1%85%B3%E1%84%85%E1%85%A9%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%86%E1%85%B5%E1%86%BC%208848e4dfa61e4194b37ece89c0fd9933/Untitled%204.png
%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%86%AF,%20%E1%84%91%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%91%E1%85%B3,%20%E1%84%89%E1%85%A9%E1%84%8F%E1%85%A6%E1%86%BA%20%E1%84%91%E1%85%B3%E1%84%85%E1%85%A9%E1%84%80%E1%85%B3%E1%84%85%E1%85%A2%E1%84%86%E1%85%B5%E1%86%BC%208848e4dfa61e4194b37ece89c0fd9933/Untitled%204.png

Built with Hugo
Theme Stack designed by Jimmy