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

相关文章

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

C语言中的数据类型强制转换

《C语言中的数据类型强制转换》:本文主要介绍C语言中的数据类型强制转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C语言数据类型强制转换自动转换强制转换类型总结C语言数据类型强制转换强制类型转换:是通过类型转换运算来实现的,主要的数据类型转换分为自动转换

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Java常用注解扩展对比举例详解

《Java常用注解扩展对比举例详解》:本文主要介绍Java常用注解扩展对比的相关资料,提供了丰富的代码示例,并总结了最佳实践建议,帮助开发者更好地理解和应用这些注解,需要的朋友可以参考下... 目录一、@Controller 与 @RestController 对比二、使用 @Data 与 不使用 @Dat

C语言实现两个变量值交换的三种方式

《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下... 目录1.使用临时变量(推荐)2.相加和相减的方式(值较大时可能丢失数据)3.按位异或运算1.使用临时

使用C语言实现交换整数的奇数位和偶数位

《使用C语言实现交换整数的奇数位和偶数位》在C语言中,要交换一个整数的二进制位中的奇数位和偶数位,重点需要理解位操作,当我们谈论二进制位的奇数位和偶数位时,我们是指从右到左数的位置,本文给大家介绍了使... 目录一、问题描述二、解决思路三、函数实现四、宏实现五、总结一、问题描述使用C语言代码实现:将一个整

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

Python实现常用文本内容提取

《Python实现常用文本内容提取》在日常工作和学习中,我们经常需要从PDF、Word文档中提取文本,本文将介绍如何使用Python编写一个文本内容提取工具,有需要的小伙伴可以参考下... 目录一、引言二、文本内容提取的原理三、文本内容提取的设计四、文本内容提取的实现五、完整代码示例一、引言在日常工作和学