Задача - получить смс с модема Huawei E173. Суть состоит в том, что бы послать на модем команду write(fd, «AT+CMGL=1\r», 10); и полученный вывод сохранить, например, в файл.
Вот как читаю информацию с модема:
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
void main(int argc, char* argv[])
{
int fd, ack=1, l=0;
char buff[1000]="";
fd=open("/dev/ttyUSB0", O_RDWR | O_NOCTTY);
while(1)
{
l=read(fd, buff, 1000);
buff[l]=0;
printf("%s \n", buff);
}
close(fd);
}
Моя проблема заключается в том, что я не знаю как объеденить запись и чтение в /dev/ttyUSB0 в одной программе. Если запустить приведённый выше кусок, и в отдельном терминале дать команду echo -e 'AT+CMGL=1\r' > /dev/ttyUSB0, то всё нормально, сообщения выводятся. Однако, если в код забить write(fd, «AT+CMGL=1\r», 10); , то чтение не срабатывает, ничего не выдаётся, хотя модем команду воспринимает, и на другом терминале через cat /dev/ttyUSB0 можно увидеть вывод. Какие есть предложения?