#include <stdio.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i,res,fd,largo;
char buffer[sizeof(unsigned int)+2],*s;
unsigned int *lg=(unsigned int *)(buffer+1);
fd=open("/dev/tty1",O_RDWR);
printf("Averiguando el largo de la seleccion:\n");
buffer[0]=14;
res=ioctl(fd,TIOCLINUX,&buffer);
printf("La iotcl devuelve %d\n",res);
printf("Largo: %u\n",*lg);
largo=*lg;
if (*lg==0) return 0;
printf("Pidiendo la seleccion:\n");
s=(char *)malloc(largo+sizeof(unsigned int)+2);
s[0]=13;
lg=(unsigned int *)(s+1);
*lg=largo;
res=ioctl(fd,TIOCLINUX,s);
printf("La iotcl devuelve %d\n",res);
largo=*lg;
printf("Largo devuelto: %d\n",largo);
s+=1+sizeof(unsigned int);
s[largo]=0;
for (i=0; s[i]; i++)
if (s[i]==13) s[i]=10;
printf("Dice esto: '%s' (%d)\n",s,s[0]);
return 0;
}