#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>

void main(int argc, char *argv[])
{
	char buf[256];
	int pid;
	int l;
	int fd=open(argv[1]?argv[1]:"/dev/sonix0modem", O_RDWR);
	if(fd==-1)
	{
		perror("modem");
		exit(1);
	}
	
	switch(pid=fork())
	{
		case -1:
			perror("fork");
			exit(1);
		case 0:
			while((l=read(fd,buf,256))>0)
				write(1,buf,l);
			perror("read");
			exit(1);
		default:
			while(fgets(buf,255,stdin))
			{
				strcpy(buf+strlen(buf)-1,"\r");
				write(fd,buf,strlen(buf));
			}
			kill(pid, 15);
	}
}
	