
socket_create_pair 함수를 사용하여 생성된 두 개의 소켓은 파일 디스크립터를 얻을 수 있습니다.
소켓의 파일 디스크립터를 얻는 방법은 다음과 같습니다.
1. socket_create_pair 함수를 호출하여 두 개의 소켓을 생성합니다.
2. 소켓의 파일 디스크립터를 얻기 위해 getsockname 함수를 사용합니다.
- getsockname 함수는 소켓의 주소 정보를 얻기 위해 사용됩니다.
- 이 함수는 소켓의 파일 디스크립터를 반환합니다.
3. 반환된 파일 디스크립터를 사용하여 소켓의 파일 디스크립터를 얻을 수 있습니다.
예를 들어, 다음과 같이 소켓의 파일 디스크립터를 얻을 수 있습니다.
#hostingforum.kr
c
#include
#include
#include
#include
int main() {
int sock[2];
socklen_t len = sizeof(sock[0]);
int fd1, fd2;
// socket_create_pair 함수를 호출하여 두 개의 소켓을 생성합니다.
if (socket_create_pair(AF_UNIX, SOCK_STREAM, 0, sock) == -1) {
perror("socket_create_pair");
return 1;
}
// getsockname 함수를 사용하여 소켓의 파일 디스크립터를 얻습니다.
if (getsockname(sock[0], (struct sockaddr *)&sock[0], &len) == -1) {
perror("getsockname");
return 1;
}
// 반환된 파일 디스크립터를 사용하여 소켓의 파일 디스크립터를 얻습니다.
fd1 = sock[0];
fd2 = sock[1];
printf("소켓 1의 파일 디스크립터: %dn", fd1);
printf("소켓 2의 파일 디스크립터: %dn", fd2);
return 0;
}
이 예제에서는 socket_create_pair 함수를 호출하여 두 개의 소켓을 생성하고, getsockname 함수를 사용하여 소켓의 파일 디스크립터를 얻습니다. 반환된 파일 디스크립터를 사용하여 소켓의 파일 디스크립터를 얻을 수 있습니다.
2025-06-21 14:18