Hi.
I have a similiar problem which korlans had few months ago.
I have a piece of software based on article from some website but instead ttyS0 i have a ttyUSB2 with 115200 baud. My device is CDMA Qualcomm modem with USB-to-Serial connection.

Here is the code:
Code:
int main()
{
    int fd;
    struct termios options;

    /* open the port */
    fd = open("/dev/ttyUSB2", O_RDWR | O_NOCTTY | O_NDELAY);
    if (fd = -1)
    {
        perror("/dev/ttyUSB2");
        exit(-1);
    }
    else
    {
        fcntl(fd, F_SETFL, 0);

        /* get the current options */
        tcgetattr(fd, &options);

        /* set raw input, 1 second timeout */
        options.c_cflag     |= (CLOCAL | CREAD);
        options.c_lflag     &= ~(ICANON | ECHO | ECHOE | ISIG);
        options.c_oflag     &= ~OPOST;
        options.c_cc[VMIN]  = 0;
        options.c_cc[VTIME] = 10;

        /* set the options */
        tcsetattr(fd, TCSANOW, &options);


        init_modem(fd);
        return 0;
    }
}

int                            /* O - 0 = MODEM ok, -1 = MODEM bad */
init_modem(int fd)   /* I - Serial port file */
{
    char buffer[255];  /* Input buffer */
    char *bufptr;        /* Current char in buffer */
    int  nbytes;          /* Number of bytes read */
    int  tries;              /* Number of tries so far */

    for (tries = 0; tries < 3; tries ++)
    {
        /* send an AT command followed by a CR */
        if (write(fd, "AT*INFO_UIM?\r", 13) < 13)
            continue;

        /* read characters into our string buffer until we get a CR or NL */
        bufptr = buffer;
	while ((nbytes = read(fd, bufptr, buffer + sizeof(buffer) - bufptr - 1)) > 0)
	{
            bufptr += nbytes;
	    if (bufptr[-1] == '\n' || bufptr[-1] == '\r')
                break;
	}

        /* nul terminate the string and see if we got an OK response */
	*bufptr = '\0';

        if (strncmp(buffer, "OK", 2) == 0)
            return (0);
    }
    return (-1);
}

It seems that this C code works without any problems on ttyS0 but with the usb-to-serial adapter ttyUSB it just writes but can't read from the modem.
I check this on minicom and also microcom and the communication is OK. But in my code there is something wrong with reading for the ttyUSB.

Could anyone help me with this?