본문 바로가기
C_C++ 프로그래밍/뇌를 자극하는 TCP_IP

뇌자극 TCP/IP 5강 요약

by RoJae 2019. 5. 20.





파일과 소켓에 대해서 알아보자


유닉스는 모든 것을 파일로 취급하여, 입력과 출력 처리를 가능하게 한다.


파일권한


소유자

 그룹

기타

 rwx

rwx

 rwx


RWX => 2^2 + 2^1 + 2^0 => 4 + 2 + 1 = 7

777 => 소유자와 그룹과 기타 사용자에게 읽기 쓰기 실행 권한을 부여한다.



표준 입력 : 0
표준 출력 : 1
표준 에러 : 2

재지향
장치로 출력된 데이터를 다른 장치로 보내는 것.

$ cat my.txt
$ cat my.txt > ok.txt     // 재지향
$ ./stderr 2>errmsg.txt    // error가 txt에 저장



파일 열기

#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>

int open(cost char *pathname, int flags);                                    // pathname 파일 이름, flags 어떤 방식으로 열 것인가
int open(const char *pathname, int flags, mode_t mode); 

fd = open("my.txt", O_WRONLY | O_CREATE, 0755);                    // 존재하면 쓰기모드, 그렇지 않다면 생성함  0755권한부여
Flags

O_RDONLY : 읽기 전용
O_WRONLY : 쓰기 전용
O_RDWR : 읽기/쓰기
O_CREATE : 파일을 생성
O_EXCL : 파일이 있는지 검사
O_APPEND : 추가 모드로 열기
O_NONBLOCK : 비 봉쇄 모드로 열기

파일 지정 번호를 사용하여, 파일을 입 출력을 할 수 있다.


안 쓰는 파일은 닫아줘야 한다.

close(int fd);
프로세스는 열 수 있는 파일의 한계가 있다. ( 커널에 계속 남아 있을 수 있다 )


파일 읽기/쓰기


읽기와 쓰기는 바로 이루어지지 않고 버퍼를 경유한다.

디스크 -> 커너 버퍼 ------(   read()  )------> 유지버퍼



소켓과 파일

소켓도 파일 형식으로 존재한다.
read/wrtie와 같은 파일 함수를 그대로 사용이 가능하다.
fcntl 함수로 제어가 가능하다.



파일에 대한 간단한 실습하기


 -> 파일에 대한 간단한 실습 <-



※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다


'C_C++ 프로그래밍 > 뇌를 자극하는 TCP_IP' 카테고리의 다른 글

뇌자극 TCP/IP 7장 요약  (0) 2019.05.25
뇌자극 TCP/IP 6강 요약  (0) 2019.05.25
뇌자극 TCP/IP 4강 요약  (0) 2019.05.19
뇌자극 TCP/IP 3강 요약  (0) 2019.05.19

댓글