Linux下发送短信问题,急死了!!!

dingyuanpu 2010-09-30 10:43:57
采用的是西门子的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呢?
怎么才能执行成功???请各位帮帮忙啊
...全文
120 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdu_sky 2012-04-17
  • 打赏
  • 举报
回复
这个问题解决了吗??我也遇到问题了,短信能发出去,但是接收到的短信内容为空
justkk 2010-09-30
  • 打赏
  • 举报
回复
哦 刚才想说的是cmd5后面没有\r
dingyuanpu 2010-09-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 justkk 的回复:]
你的cmd是不是也应该\r结尾啊
是\r还是\n呢..
[/Quote]

是\r,用\n的话前面的命令也执行不成功
justkk 2010-09-30
  • 打赏
  • 举报
回复
你的cmd是不是也应该\r结尾啊
是\r还是\n呢..
dingyuanpu 2010-09-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 justkk 的回复:]
ctrl+z是不是终止符号啊
你直接关闭fd试试看呢
[/Quote]

试了,还是不行,在超级终端或minicom上用ctrl-z好用,可在程序中该如何使用呢???
justkk 2010-09-30
  • 打赏
  • 举报
回复
ctrl+z是不是终止符号啊
你直接关闭fd试试看呢
hjpraul 2010-09-30
  • 打赏
  • 举报
回复
关注中。。。

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧