1 /* Copyright 2005 Renzo Davoli VDE-2
2 * Licensed under the GPLv2
4 * Minimal terminal emulator on a UNIX stream socket
12 #include <sys/socket.h>
20 int main(int argc
,char *argv
[])
22 struct sockaddr_un sun
;
25 static struct pollfd pfd
[]={
26 {STDIN_FILENO
,POLLIN
| POLLHUP
,0},
27 {STDIN_FILENO
,POLLIN
| POLLHUP
,0}};
28 static int fileout
[]={STDOUT_FILENO
,STDOUT_FILENO
};
29 sun
.sun_family
=PF_UNIX
;
30 snprintf(sun
.sun_path
,sizeof(sun
.sun_path
),"%s",argv
[1]);
31 fd
=socket(PF_UNIX
,SOCK_STREAM
,0);
32 rv
=connect(fd
,(struct sockaddr
*)(&sun
),sizeof(sun
));
33 pfd
[1].fd
=fileout
[0]=fd
;
35 int m
,i
,n
=poll(pfd
,2,-1);
37 if(pfd
[i
].revents
& POLLHUP
)
39 if(pfd
[i
].revents
& POLLIN
) {
41 if((m
=read(pfd
[i
].fd
,buf
,BUFSIZE
)) == 0)
43 write(fileout
[i
],buf
,m
);