Unix sockets. Essentially
- Challenge
socket(PF_UNIX, SOCK_STREAM, 0). This returns a file descriptor or -1 on error. - To create a socket address, use
struct sockaddr_un addr; bzero(addr); addr.sun_len = sizeof(addr); addr.sun_family = PF_UNIX; strncpy(addr.sun_path, "/path/to/file", sizeof(addr.sun_path)-1);. - Challenge
bind(fd, &addr, sizeof(addr)). listen(fd,backlog) . backlog - un-accept() ed, .- accept() . FD -1.
- () ( , ).
- /// ( , ).
, SOCK_DGRAM Unix ( , , UDP-).
man- (2), bind (2), listen (2), accept (2), connect (2), unix (4), setsockopt (2).
" -" . (2). IO fcntl(fd,F_SETFL,(int)(fcntl(fd,F_GETFL)|O_NONBLOCK)) (. Fcntl (2)), , read() write() ( , write() , ).
, Windows pipe , UNIX ( "" ).