1 /* Copyright 2005 Renzo Davoli VDE-2
2 * Licensed under the GPLv2
4 * Minimal terminal emulator on a UNIX stream socket
11 #include <sys/socket.h>
16 #include <vdecommon.h>
21 int main(int argc
,char *argv
[])
23 struct sockaddr_un sun
;
26 static struct pollfd pfd
[]={
27 {STDIN_FILENO
,POLLIN
| POLLHUP
,0},
28 {STDIN_FILENO
,POLLIN
| POLLHUP
,0}};
29 static int fileout
[]={STDOUT_FILENO
,STDOUT_FILENO
};
30 sun
.sun_family
=PF_UNIX
;
31 snprintf(sun
.sun_path
,sizeof(sun
.sun_path
),"%s",argv
[1]);
32 if((fd
=socket(PF_UNIX
,SOCK_STREAM
,0))<0) {
33 perror("Socket opening error");
36 if ((rv
=connect(fd
,(struct sockaddr
*)(&sun
),sizeof(sun
))) < 0) {
37 perror("Socket connecting error");
40 pfd
[1].fd
=fileout
[0]=fd
;
42 int m
,i
,n
=poll(pfd
,2,-1);
44 if(pfd
[i
].revents
& POLLHUP
)
46 if(pfd
[i
].revents
& POLLIN
) {
48 if((m
=read(pfd
[i
].fd
,buf
,BUFSIZE
)) == 0)
50 write(fileout
[i
],buf
,m
);