试图通过linux中的串口读取sms消息,从一张安装在华为3g USB调制解调器内的SIM卡读取。我必须在屏幕上显示一些短信之前执行脚本。有时它显示不寻常的字符。我想要做的就是使用AT命令,c和串行端口从SIM卡中读取短信。以下是我正在使用的代码。在Linux下使用串口读取SIM卡上的SMS消息使用C

int main(){

int fd;

struct termios options;

/* open the port */

fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY | O_NDELAY);

if (fd == -1)

{ /* Could not open the port */

fprintf(stderr, "open_port: Unable to open /dev/ttyS1 - %s\n",strerror(errno));

}else{

printf("port opened\n");

}

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);

char buffer[400]; /* 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 < 1; tries ++)

{

/* send an AT command*/

if (write(fd, "AT+CMGL=\"ALL\"\r", strlen("AT+CMGL=\"ALL\"\r")) < 3){

printf("command sent\n");

continue;

}

/* read characters into our string buffer*/

bufptr = buffer;

nbytes = read(fd, bufptr, buffer + sizeof(buffer) - bufptr - 1);

printf("%s\n",bufptr);

char *p;

p = strstr(buffer, "tin");

printf("%s",p);

p = strstr(buffer, "server");

if(p == NULL) printf("not from server\n");

*bufptr = '\0';

}

return 0;

}

linux系统读sim卡信息,在Linux下使用串口读取SIM卡上的SMS消息使用C相关推荐

  1. linux系统查看机器硬件信息,linux系统查看硬件信息的方法

    用过Linux系统的人都知道这么一个情况,那就是Linux大部分操作是通过命令实现的,并不像Windows那么直观.linux查看硬件信息也是需要通过命令查询才可以看得到硬件的信息,那linux系统如 ...

  2. linux的pci文件是哪个,Linux系统查看PCI设备信息

    Linux系统查看PCI设备信息,基本是使用lspci命令,如果找不到该命令,那么需要先安装pciutils软件包. 列出系统的PCI设备: [root@os2 ~]# lspci00:00.0 Ho ...

  3. linux网卡没有显示link,以下显示是一个Linux系统的网络配置信息:eth0 Link encap:..._考试资料网...

    单项选择题以下显示是一个Linux系统的网络配置信息: eth0 Link encap:Ethernet HWaddr 00:0C:29:F5:B4:79 inet addr:192.168.2.38 ...

  4. linux系统发送信号的系统调用是,linux系统编程之信号:信号发送函数sigqueue和信号安装函数sigaction...

    信号发送函数sigqueue和信号安装函数sigaction sigaction函数用于改变进程接收到特定信号后的行为. sigqueue()是比较新的发送信号系统调用,主要是针对实时信号提出的(当然 ...

  5. 查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 查看Linux系统架构的命令,查看linux系统是哪种架构:AMD.ARM.x86.x86_64.pcc 文章目录: 1 ...

  6. linux系统6.5详解,linux6.5下 简单配置 MINI 系统实现详解(1)

    一.linux系统启动流程介绍 我们来了解下linux系统的启动流程: 首先linux要通过POST自检过程(BIOS)-->如果想要做多块启动盘的话,还需要在bios中选择启动磁盘--> ...

  7. linux 系统业务迁移,记录一次linux系统迁移过程

    就在最近,终于为自己的电脑加装了固态.在装完固态之后,首先面临的问题就是如何将原先安装在机械硬盘上的linux系统迁移到固态上.还要考虑后续配置的问题. 本文主要讲述在迁移Linux系统到新的固态硬盘 ...

  8. linux系统组成之小型RedHat little linux制作二

    本篇是在上篇"linux系统组成之小型RedHat little linux制作一"的基础上对微型小系统进一步完善,使其实现关机.重启等功能 ⑴.通过脚本使其微型系统实现关机.重启 ...

  9. 路由器 刷 linux系统版本,一个小型的无线路由器 Linux 系统OpenWRT[转]

    一个小型的无线路由器 Linux 系统OpenWRT分类:电脑技术 » linux应用    出处:网络   OpenWRT - (http://www.openwrt.org) 开发板: 十几种市面 ...

最新文章

  1. kafka 重复消费和数据丢失_刨根问底,Kafka消息中间件到底会不会丢消息
  2. java 全局变量_Javascript中的局部变量、全局变量的详解与var、let的使用区别
  3. KVM 安装windows 虚拟机
  4. 一篇文章对Python匿名函数配合容器函数的使用理解
  5. C++右值引用的参考
  6. Tomcat Firewall JMX RMI
  7. Java命令行界面(第4部分):命令行
  8. Android 基础 —— 活动的启动模式
  9. 【小程序】一个提醒休息的小程序,供大家娱乐
  10. 一位挪威博士的PolarDB资深架构师之路
  11. 不疯魔不成活,还是偏执狂?
  12. 常见高清视频“扩展名”、视频标准
  13. 利用Python画直方图
  14. Playwright之初体验
  15. 2007年世界顶级防火墙排名(附下载地址)
  16. 采用CCG和kkt条件编制两阶段鲁棒优化程序,以储能、发电、风电和光伏容量作为第一阶段变量
  17. MySQL数据库查询(实验四)
  18. 用服务器的id做网站,用服务器做网站空间
  19. MATLAB数据类型——浮点数
  20. 直通车在第一次做应该如何出价呢?如何出价更合理?

热门文章

  1. 开涛的springMVC教程读书笔记
  2. 常见职位的英文简称_职场中常见的英文缩写是什么意思?4P是哪4P?各个岗位和部门的英文缩写是什么?...
  3. 抖音seo账号矩阵新玩法?应该如何借助新的接口技术开发
  4. 华硕笔记本 换键盘 电池不供电 问题
  5. python爬虫电影资源_【Python爬虫】第十六次 xpath整站抓取阳光电影网电影资源
  6. Python自学02
  7. 微信输入法语音转文字测试设计点
  8. 使用Adove illustrate 去背景
  9. 2021-07-23 Week1 基于截图的钓鱼网站检测、中小微企业安全现状调查
  10. 小游戏《塔防》开发(三)