연결된 소켓 쌍을 생성한다.
#include <sys/types.h> #include <sys/socket.h> int socketpair(int d, int type, int protocol, int sv[2]);
socketpair()은 옵션으로 d영역(domain)을 가지며 protocol프로토콜을 사용하는 type의 소켓 쌍을 생성한다. 생성된 소켓 쌍은 sv를 통해서 넘어온다. 두개의 소켓은 서로 구별할 수 없다.
보통 부모 자식 프로세스간 내부 통신(IPC)를 위해서 사용한다. 소켓이므로 양방향(읽고/쓰기) 통신이 가능하다.
성공시 0을 반환하고 실패할 경우 -1을 반환한다.
너무 많은 파일이 열려있어서 더이상 소켓을 생성할 수 없다.
지정한 주소 지정방식이 지원되지 않는다.
지정된 프로토콜이 지원되지 않는다.
주소 ev가 프로세스 주소 공간의 유효한 부분을 가리키지 않는다.
#include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <sys/socket.h> #include <sys/types.h> int main() { int pid; char buf[256]; int fd; int sv[2]; int num = 0; socketpair(AF_UNIX, SOCK_STREAM, AF_LOCAL, sv); pid = fork(); if (pid == 0) { dup2(sv[0], 0); close(sv[1]); close(sv[0]); execl("./pipe_cl", "pipe_cl", NULL); } else if (pid > 0) { close(sv[0]); while(1) { write(sv[1], (void *)&num, 4); printf("write %d\n", num); read(sv[1], (void *)&num, 4); printf("read %d\n", num); } } }
#include <unistd.h> #include <stdio.h> int main() { int num; while(1) { read(0, (void *)&num, 4); num++; write(0, (void *)&num, 4); sleep(1); } }
Copyrights © - Joinc, All Rights Reserved. Inherited From - Yundream Rebranded By - Joonphil
1장. socketpair(2)
연결된 소켓 쌍을 생성한다.
1.1절. 사용법
1.2절. 설명
socketpair()은 옵션으로 d영역(domain)을 가지며 protocol프로토콜을 사용하는 type의 소켓 쌍을 생성한다. 생성된 소켓 쌍은 sv를 통해서 넘어온다. 두개의 소켓은 서로 구별할 수 없다.
보통 부모 자식 프로세스간 내부 통신(IPC)를 위해서 사용한다. 소켓이므로 양방향(읽고/쓰기) 통신이 가능하다.
1.3절. 반환값
성공시 0을 반환하고 실패할 경우 -1을 반환한다.
1.4절. 에러
너무 많은 파일이 열려있어서 더이상 소켓을 생성할 수 없다.
지정한 주소 지정방식이 지원되지 않는다.
지정된 프로토콜이 지원되지 않는다.
주소 ev가 프로세스 주소 공간의 유효한 부분을 가리키지 않는다.
1.5절. 예제
Recent Posts
Archive Posts
Tags