#include #include #include #include #include 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; }