当前位置: 技术问答>linux和unix
如何向linux的终端输出CRTL+Z
来源: 互联网 发布时间:2016-06-28
本文导语: 应该是个老问题了。但是就找不到适合我的解决方法。 目前想要通过串口向 GT64 手机模块发送指令来发短信。text模式。流程当然是: at+cmgf=1 //选择text模式 at+cmgs="XXXXXXXXXX" // X代表手机号 > hello [CTRL+Z][CR] 用C语...
应该是个老问题了。但是就找不到适合我的解决方法。
目前想要通过串口向 GT64 手机模块发送指令来发短信。text模式。流程当然是:
at+cmgf=1 //选择text模式
at+cmgs="XXXXXXXXXX" // X代表手机号
> hello [CTRL+Z][CR]
用C语言编写的。我知道[CTRL+Z]的ASCII码是 26,但是我在linux下把最后一行的程序写成这样:
n = write(fd,"haha 26r",7);
输出显示26变成了一个乱码文字。 r正常,换行出现了。终端还在等待[CTRL+Z]
这时如果我用别的软件向终端发送一个[CTRL+Z]的话,短信就能成功。说明前面的设置还是对的。
请问各位大虾,到底应该怎么用C语言向终端输出[CRTL+Z]呢?
目前想要通过串口向 GT64 手机模块发送指令来发短信。text模式。流程当然是:
at+cmgf=1 //选择text模式
at+cmgs="XXXXXXXXXX" // X代表手机号
> hello [CTRL+Z][CR]
用C语言编写的。我知道[CTRL+Z]的ASCII码是 26,但是我在linux下把最后一行的程序写成这样:
n = write(fd,"haha 26r",7);
输出显示26变成了一个乱码文字。 r正常,换行出现了。终端还在等待[CTRL+Z]
这时如果我用别的软件向终端发送一个[CTRL+Z]的话,短信就能成功。说明前面的设置还是对的。
请问各位大虾,到底应该怎么用C语言向终端输出[CRTL+Z]呢?
|
n = write(fd,"haha x1ar",7);
|
r 是换行, 26 却并不是CTRL+Z,
试试:
char *context = "haha";
char c_end[12] = {0};
c_end[0] = 26;
memcpy(c_end+1; "n", 2)
n = write(fd, context, sizeof(context));
n = write(fd, c_end, 3);