c基础
每个名字都存在
个人对新知识的学习的一个总结与记录,顺带能够给他人带来一点点帮助,何乐而不为呢!
展开
-
xml 解析
xml使用原创 2022-10-15 15:42:54 · 653 阅读 · 1 评论 -
域套接字-多客户端实现
域套接字-多客户端实现我们在linux 应用开发中,如果需要实现进程间通信的多客户端接口,就需要引入select 和epoll 相关机制了,本文介绍下epoll的功能的实现。多客户端使用场景,比如我们需要开发一个库接口,提供给客户调用,那么使用域套接字实现进程间通信,就必须在service端引入多路复用,否则库功能就只能被一个进程使用了。代码实现:service端#include<stdio.h>#include<stdlib.h>#include<sys/soc原创 2021-03-21 12:19:35 · 611 阅读 · 0 评论 -
ipc 通信介绍
ipc 通信介绍linux应用开发中,进程中通信的使用是不可能避免的,本文介绍常用的进程间通信方式。有名管道,消息队列,域套接字。一,有名管道管道文件,可以由任意进程访问,打开管道就可以指定读写方式通过文件IO操作,内容在内存中,读写端全部关闭就释放,使用时注意,读端打开是会阻塞,写端打开时才运行,写端存在但是不写数据,读端也会阻塞,可以使用open read write进行读写,一但读到文件末尾,需要关闭,否则一直读到“”,返回为0。代码实现:#include<stdio.h>#原创 2021-03-20 13:26:51 · 982 阅读 · 0 评论 -
linux线程中如何控制子线程退出
linux线程中如何控制子线程退出一.相关接口介绍1.线程的创建-pthread_create使用man 3 查询函数使用int pthread_create(pthread_t *thread, //线程id const pthread_attr_t *attr, //线程属性,一般为空 void *(*start_routine) (void *), //线程处理函数 void *原创 2020-11-15 08:10:02 · 1397 阅读 · 0 评论 -
linux 编程基础知识小结
linux 编程基础知识小结一.编译linux .c文件编译成可执行文件,需要经过预处理,编译,汇编,链接的过程,我们现在分别介绍每个过程,我们一般说的编译就是这四个过程的统称。1.预处理命令:gcc -E test.c -o test.i在源文件中,我们把以#开头的叫做预处理命令,也就是说预处理就是处理文件中#开头的一些命令,他包括头文件包含#include,宏定义#define,条件编译,在linux开发过程这一步我们可以做许多应用。检查功能宏的定义,没有定义可以让预处理阶段就报错报,或者检原创 2020-10-18 15:33:17 · 444 阅读 · 0 评论 -
Linux 开发常用知识杂谈(1)
Linux 开发常用知识杂谈1.如何使用命令的方式确定进程命令解释:ps -ef 查询系统进程| 管道符 输出作为输入grep -v grep 排除带grep字符串的进程wc -l 统计函数2.如何查询linux 文件或者目录大小 - du3.内存占用情况-df4.十六进制显示文件内容-hexdump5.在程序中如何调用且有输出结果command 为命令fp ...原创 2020-03-21 13:05:32 · 204 阅读 · 0 评论 -
linux Posix定时器介绍
linux Posix定时器介绍在linux应用编程中,定时器的使用是不可或缺的部分,本文介绍下linux原创 2020-03-08 17:36:51 · 840 阅读 · 0 评论 -
使用c语言单向链表实现简单学生成绩管理系统(3)
使用c语言单向链表实现简单学生成绩管理系统现在这个简单系统不能保存数数据,不能退出,本文使用lo操作将链表中维护的数据保存到文件中,即退出保存,重新运行再从文件中提取数据。#include<stdio.h>#include<stdlib.h>#include<string.h>#include <sys/types.h>#include...原创 2019-11-05 17:57:39 · 717 阅读 · 2 评论 -
使用c语言单向链表实现简单学生成绩管理系统(2)
使用c语言单向链表实现简单学生成绩管理系统本文优化整个代码框架结构,完善用户可以对系统信息的修改。本例中,使用一系列c语言知识,有利于巩固c语言语法,具体包括结构体,枚举,while循环,switch语句,还有数据结构等内容。基于上一个内容(使用c语言单向链表实现简单学生成绩管理系统(1))作如下修改。修改1:实现基于姓名对数据进行修改和删除简单解释下节点的删除代码实现//链表中删除...原创 2019-11-05 09:21:20 · 811 阅读 · 0 评论 -
使用c语言单向链表实现简单学生成绩管理系统(1)
使用c语言单向链表实现简单学生成绩管理系统链表是一种基本的数据结构类型,可以实现对信息的管理,实现此系统,需要定义一个管理信息的数据类型结构体,然后对数据信息进行增删改查即可。本文定义一个个人成绩结构体,用于存储个人信息。struct grade_msg{ int chinese; int math; int english; .... }struct student_ms...原创 2019-11-04 16:40:40 · 4115 阅读 · 1 评论 -
结构体copy问题
结构体copy问题c语言中,结构使用是非常频繁的,操作结构体时,我们一般使用memcpy对结构体进行copy赋值,其实我们忽略了一点,同一种类型结构体是可以直接进行赋值的。另外,本文介绍下使用memcpy copy结构体时的一些注意事项。一.结构体内存对齐使用memcpy对结构体进行内存copy,首先要知道结构体的大小计算,最简单的方法使用sizeof(结构体类型)进行计算。当然,本文也介绍...原创 2019-10-29 19:28:02 · 9124 阅读 · 1 评论 -
c语言编程中-断言
c语音编程中断言assert使用本文除了介绍assert在c语言编程的的使用,更重要的是在rtos系统编程中,configASSERT调试的方法。一,assert函数首先,介绍assert函数下c编程中的使用测试程序如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include&l...原创 2019-10-23 14:52:19 · 932 阅读 · 0 评论 -
拷贝函数strcpy和memcpy
拷贝函数strcpy和memcpy近期做项目过程,需要拼接音频数组,开始使用strncpy,从代码实现没发现任何问题,后面才知道strcpy字符串操作,即使使用长度控制,遇到0也会停止拷贝,对此也反应了我c语音功底还是不够,在此记录下,引以为戒。对此,我们在c编程过程中,不要过度依赖str字符串操作函数,既然是字符串操作接口,我们要做到只在字符串操作的时候使用他们,对于其他的内存拷贝,都去使用...原创 2019-09-26 10:38:07 · 159 阅读 · 0 评论 -
JSON的创建与解析
JSON的创建与解析最近做一个物联网项目,需要用到数据解析,通过阿里云下发字符串给我们设备,采用mqtt协议接收字符串后需要解析字符串,分别提取下发字符串内容,项目中使用 JSON的方式解析,初次接触,再次记录。一.JSON介绍c语言中,没有任何可以直接解析字符串到数据结构的函数接口,如果需要解析字符串,自己通过strstr(),strchr(),strtok_r()等函数通过自己逻辑封装函...原创 2019-05-31 20:55:52 · 480 阅读 · 0 评论 -
FreeRTOS基本函数使用
FreeRTOS基本api使用在嵌入式领域中,嵌入式实时操作系统正得到越来越广泛的应用。采用嵌入式实时操作系统(RTOS)可以更合理、更有效地利用CPU的资源,简化应用软件的设计,缩短系统开发时间,更好地保证系统的实时性和可靠性。一.常用apiFreertos 函数定义在与task.h,semphr. h 和queue.h中,这里简单介绍下常用api接口。@任务-----task.h1....原创 2019-06-25 19:15:22 · 2431 阅读 · 0 评论 -
c语言log中常用宏介绍
c语言log中常用宏介绍我们在开发过程中,不可避免需要增加调试log,不可避免的需要使用下面宏定义,使我们的log更加清晰有条理。LINE:行号 使用%d控制输出DATE:日期 使用%s控制输出FILE:文件路径 使用%s控制输出TIME:时间 使用%s控制输出FUNCTION:调用函数 使用%s控制输出这些宏不需要定义,编译器就可以...原创 2019-07-24 21:11:01 · 960 阅读 · 0 评论 -
c库常用函数源码分析
c库函数源码解析方法c语言学习过程中,会使用到许多库函数,典型的字符串处理函数的实现在许多公司笔试题中都会有考,所以掌握这一块不经可以增强个人c语言语法知识,对找工作也会有一定的益处。如何查看c库函数源码呢?下载gnu libc库,下载地址:http://www.gnu.org/software/libc/下载完成可直接使用代码阅读工具查看代码,比如windows source insig...原创 2019-07-27 17:51:02 · 2057 阅读 · 0 评论 -
通过sntp同步系统时间
通过sntp同步系统时间小型物联网设备,很少有接口提供给用户进行数据交互,那么我们设备的系统时间只能够通过获取网络时间后,再更新到本地。那么,就少不了使用sntp协议。ntp协议:NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC(通用协调时,可以理解为0时区的时间,领先东八区8个小时),再配合各个时区的偏移调整...原创 2019-08-08 11:29:42 · 5171 阅读 · 0 评论 -
linux下库的制作及使用
linux下库的制作及使用所谓库,其实即使一些封装好的可以直接使用的函数接口,封装成库的api可以直接给他人使用,而且不会泄露我们api的实现方式,linux中,库的制作分为两种,静态库和动态库。静态库:后缀为.a,编译时需要,最终编译到我们的程序之中。动态库:后缀为.so,程序运行时才需要。这里说库制作之前插入一个小知识点,我们使用vim阅读编写代码时,学会使用vsp命令的使用,vsp是...原创 2019-08-06 21:19:16 · 454 阅读 · 0 评论 -
linux系统时间获取
linux系统时间获取本文介绍下linux系统下如何获取精确到us的时间值(有时程序需要精确到us),另外,linux如何获取系统时间。一.linux命令行获取linux系统获取系统时间命令:date注意:此时间是PDT时间,太平洋时间的标准时间从协调世界时减去8小时(UTC 8),下同,并不是utc时间(世界标准时间),所以此时间应该比东八区时间早8+8=16个小时。如何获取带时区的...原创 2019-08-09 09:16:04 · 1789 阅读 · 0 评论 -
格式化输入与输出
格式化输入与输出今天主要介绍下c语言中比较重要的两个函数,sprintf和ssconf。1.sprintf-格式化输出man手册描述用的比较多的sprintf函数接口int sprintf(char *str, const char *format, ...);将format字符串输出到str的地址之中。2.sscanf-格式化输入man手册描述太多,此处不贴出来了,请自行去m...原创 2019-09-18 20:56:02 · 511 阅读 · 0 评论 -
c语言处理字符串
c语言处理字符串在物联网项目开发过程中,经常使用http get(平台会提供相应的api接口)从服务器端获取一些数据,这些数据可能时Json格式的字符串,比较好处理,但是对于部分无规则的字符串,我们如何解析它呢?首先介绍下ubuntu下man工具的使用安装c语言库函数man手册,sudo apt-get install manpages-dev,man 3 c语言库函数 查询库函数用法...原创 2019-07-08 21:17:22 · 492 阅读 · 0 评论