Linux/Linux_programing

Socket 04. close() shutdown() 소켓 서술자 닫기

sosal 2009. 11. 6. 06:50
반응형

/*
 http://sosal.tistory.com/
 * made by so_Sal
 */



#include<unistd.h>
int close(int file_descriptor);

file descriptor로 지정된 파일 서술자와, 그 파일 서술자가 가리키는 실제 파일과의 연결을 차단.

write()함수로 파일 쓰기를 수행할 때에는 자료가 실제로 기억되었는지 확인하지 못할 수 있다.
그래서 이런경우에 close의 반환값을 점검한다.
성공시 0, 실패시 -1 반환.

#include<unistd.h>
int shutdown() :: 부분닫기

소켓 함수로 생성된 파일 서술자에는 (소켓 버퍼라고도 한다.) 송신 버퍼와 수신 버퍼
두가지가 열려있는데, shutdown()함수로 각각의 부분적 연결을 차단 가능.

flags ::

SHUT_RD
수신 버퍼를 닫아, 읽기 함수를 호출할 수 없도록 한다.

SHUT_WR
송신 버퍼를 닫아, 쓰기 함수를 호출할 수 없도록 한다.

ex)
client_socket = socket(PF_INET, SOCK_STREAM, 0);
....
..

shutdown(client_socket, SHUT_WR);
//
이 함수 호출 이후로는
client_socket 파일 서술자에 write 함수로 버퍼를 보내지 못함