반응형
Half-close 생성하기 위한 조건
1. 쓰기 스트림 삭제
2. EOF 전달
half-close를 하기 위한 방법1(실패)
※ 하나의 파일 디스크립터를 기반으로 입출력 파일 포인터 생성시
하나의 파일 포인터만 종료되어도 완전 종료된다.
※ 시스템 리소스(여기서는 소켓)는 가리키는 포인터
(여기서는 파일 디스크립터)가 없을 때 종료된다.
half-close를 하기 위한 방법2(성공)
파일 디스크립터의 복사함수
#include <unistd.h>
int dup(int fildes);
int dup2(int fildes, int fildes2);
성공시 복사된 파일 디스크립터, 실패시 -1 반환
fildes : 복사할 파일 디스크립터 전달
fildes : 명시적으로 지정할 파일 디스크립터의 정수 값 전달
fgets()
EOF(=-1)을 읽거나 또는 읽기를 실패했을 경우 NULL(='\0', 0x00, 문자열의 끝에 들어감)을 돌려줌
read()
EOF(=-1)을 읽으면 NULL을 돌려줌, 버퍼가 비었거나 읽기를 실패했을 경우는 -1을 돌려줌
int recv(
_In_ SOCKET s,
_Out_ char *buf,
_In_ int len,
_In_ int flags
);
Return value
If no error occurs, recv returns the number of bytes received
If the connection has been gracefully closed, the return value is zero.
반응형