프로그래밍 언어/C++
fnctl함수 (c, c++), 논블록킹 구현하기
잉읭응
2021. 3. 17. 14:31
반응형
선언해야할 헤더는 2가지입니다.
#include <unistd.h>
#include <fcntl.h>
리눅스에서는 모든것을 파일형태로 관리합니다. 소켓또한 파일디스크립터 번호를 부여하고 관리합니다.
파일에 대한 속성을 변경하거나 얻어올 때 사용하는 함수가 바로 fnctl입니다.
int fcntl(int fd, int cmd, ... /* arg */ );
형태로 사용합니다.
반환값은 cmd에 따라 다르고 실패한다면 -1을 전달합니다.
아래는 커맨드입니다.
아래 코드는 논블록킹 구현을 위한 예제입니다.
위와같이 함수를 호출하고, 서버와 클라이언트에 대한 소켓이 생성될때 해당 함수를 호출해주면 되는 구조입니다.
반응형