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

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验