c tool系列------c语言编程常用语句

2024-09-04 01:32

本文主要是介绍c tool系列------c语言编程常用语句,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

针对main函数的argc,argv


for (i = 1; i < argc ;) {if (0 == strcmp(argv[i], "-m") && (argc - i > 1)) {tty_modem = argv[i + 1];i += 2;} else if (0 == strcmp(argv[i], "-p") && (argc - i > 1)) {tty_pc = argv[i + 1];i += 2;} else if (0 == strcmp(argv[i], "-d") && (argc - i > 1)) {i += 2;} else if (0 == strcmp(argv[i], "-f") && (argc - i > 1)) {modem_config_file = argv[i + 1];i += 2;} else if (0 == strcmp(argv[i], "-t") && (argc - i > 1)) {tunnel_switch = argv[i + 1];if (0 == strncmp(tunnel_switch, "on", 2)) {tunnel_mode = 1;}i += 2;}}

使用poll函数

#define AT_CMD_OK 0
#define AT_CMD_REOPEN 1
#define AT_CMD_RESEND 2result = wait_for_data (fd, 3000 );if (result == AT_CMD_OK ) {if (read(fd, buf, buf_size-1) < 0) {LOGE(TAG"Read response from %s error, error num is %d\n", tty_name, errno);return -1;}} else if (result == AT_CMD_RESEND) {poll_cnt++;LOGD(TAG"Wait %s result, poll %s failed %d times\n", at_cmd, tty_name, poll_cnt);sleep(2);if (poll_cnt >= POLL_RETRY_MAX)return -1;} else {LOGD(TAG"Wait %s result, poll %s failed and need reopen.\n", at_cmd, tty_name);modem_hangup_flag = 1;return -1;}
int wait_for_data( int fd, long wait_time_ms)
{struct pollfd fds[1];int poll_ret;int retVal = AT_CMD_OK;fds[0].fd = fd;fds[0].events = POLLIN;fds[0].revents = 0;poll_ret = poll( fds, 1, wait_time_ms);if ( 0 < poll_ret ) {if ( fds[0].revents & POLLHUP ) {LOGE(TAG"device hung up\n");retVal = AT_CMD_REOPEN;goto Exit_Handler;} else if ( fds[0].revents & POLLIN ) {LOGV(TAG"Received response data\n");} else {/* Not sure we will ever get here */LOGE(TAG"Unexpected event while waiting for response\n");retVal = AT_CMD_RESEND;goto Exit_Handler;}} else if ( 0 == poll_ret ) {LOGE(TAG"Timed out while waiting for response\n");retVal = AT_CMD_RESEND;goto Exit_Handler;} else {LOGE(TAG"Error occured polling for response.  errno: %d\n", errno);retVal = AT_CMD_RESEND;goto Exit_Handler;}retVal = AT_CMD_OK;Exit_Handler:return retVal;
}

关闭文件操作

static void fdclose()
{if (md_fd != -1) {close(md_fd);md_fd = -1;}if (pc_fd != -1) {/* Add errno trace in case that "unable write usb value" problem of BZ4161 is reproduced.*/if (close(pc_fd) < 0) {LOGE("close(pc_fd:%d) failed, error: %d, %s\n", pc_fd, errno, strerror(errno));}pc_fd = -1;}
}



这篇关于c tool系列------c语言编程常用语句的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1134615

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

Python 常用数据类型详解之字符串、列表、字典操作方法

《Python常用数据类型详解之字符串、列表、字典操作方法》在Python中,字符串、列表和字典是最常用的数据类型,它们在数据处理、程序设计和算法实现中扮演着重要角色,接下来通过本文给大家介绍这三种... 目录一、字符串(String)(一)创建字符串(二)字符串操作1. 字符串连接2. 字符串重复3. 字

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2