日期:2014-05-16  浏览次数:20659 次

Linux下发送短信问题,急死了!!!
采用的是西门子的tc35,用串口线之间连的pc机,想写个c程序进行发送短信

我是这样发送的短信(text模式)
char cmd1[] = "AT\r";
char cmd2[] = "AT+CMGF=1\r";
char cmd3[] = "AT+CSCA=+8613800635500\r";
char cmd4[] = "AT+CMGS=13562049562\r";
char cmd5[] = "tao shi gou shi";
char cmd6[] = "0x1A\r";//这里可能有问题!!!

printf("write: %d\n", write(fd, cmd1, sizeof(cmd1)));
sleep(2);
printf("write: %d\n", write(fd, cmd2, sizeof(cmd2)));
sleep(2);
printf("write: %d\n", write(fd, cmd3, sizeof(cmd3)));
sleep(2);
printf("write: %d\n", write(fd, cmd4, sizeof(cmd4)));
sleep(2);
printf("write: %d\n", write(fd, cmd5, sizeof(cmd5)));
sleep(2);
printf("write: %d\n", write(fd, cmd6, sizeof(cmd6)));
sleep(2);

在超级终端和minicom中输入前五个命令,然后ctrl-z,回车,能发送成功
可是在程序中,前五个命令执行都成功,到最后一个命令的时候(红色部分)就会出错
0x1A是ctrl-z的十六进制啊,怎么就不行呢???
怎么从程序中执行ctrl-z呢?
怎么才能执行成功???请各位帮帮忙啊

------解决方案--------------------
ctrl+z是不是终止符号啊
你直接关闭fd试试看呢
------解决方案--------------------
关注中。。。