试图通过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. 一个简单的 Python-kivy 小程序
  2. Spring的@Transactional注解踩坑
  3. 双11万亿流量下的分布式缓存
  4. c语言教程for,C语言菜鸟基础教程之for循环
  5. 【华为云技术分享】如何度量前端项目研发效率与质量(上)
  6. 使用计算机计算一个多边形,多边形面积计算器
  7. 面向对象银角大王补充2-self就是调用当前方法的对象-静态字段,公有属性-封装的理解-继承的理解,普通方法,静态方法...
  8. QTTabBar 使用教程:用浏览器的方式管理 Windows 资源管理器
  9. 5.1索引压缩-词项的统计特性(Heaps定律、Zipf定律)
  10. c语言三种结构化程序设计方法,C语言中用于结构化程序设计的三种基本结构是什么...
  11. X86、X64和X86_64区别
  12. word硕士毕业论文不同章节设置不同页眉
  13. php linux重新写路由器,通过php脚本重启路由器
  14. 聊聊MySQL的10大经典错误
  15. 零基础都能看懂的 STL map 详解
  16. Information and Influence Propagation in Social Networks学习笔记
  17. 一些值得关注的云计算资源
  18. 多IMU车载GNSS/INS数据集及介绍
  19. 【20180808】集训题d3
  20. 关于淘宝与Amazon的首页比较

热门文章

  1. LeetCode:118(Python)—— 杨辉三角(简单)
  2. AI+教育”想做好有多难?网易有道CEO、学霸君CEO等4位大佬“掏心窝”
  3. python答案中国铁道出版社官网_VB课后习题答案(中国铁道部出版社出版)
  4. 函授计算机怎么找工作,找工作函授学历可以吗
  5. 计算摄氏温度(10 分)
  6. 蚂蚁金服架构调整:胡晓明任总裁 向井贤栋汇报
  7. it生活的第一年总结
  8. 图扑数字孪生空冷机组,助推智慧电厂拥抱“双碳”
  9. 【IF=10.812 Molecular Plant】HDA9和WRKY53共同在植物胁迫中起拮抗调节作用
  10. Commom(十)—— ConfigReader