C
C_Aya
多做事,少说废话
展开
-
Socket——实现简单的一对一服务器端与客户端聊天功能
server.c/* Socket head file */#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>/*sockaddr_in{} */#include<arpa/inet.h>/* Unix standard head file */#include<stdio.h>#include<stdlib原创 2016-10-26 16:05:09 · 5143 阅读 · 4 评论 -
C——常用字符串函数、内存操作函数总结
《C和指针》第九章讲到了:字符串、字符和字节。学习之后,现把这一章的一些知识点提炼、总结。=========================================== 回顾一下字符串基础知识:字符串就是由零个或多个字符构成,结尾以’\0’作为终止标志的一种数据类型。 但是在我们的C语言中,没有像int、float这样,有一个显式的数据类型。因为字符串以一个字符串常量形式表示,或者存储在原创 2017-07-29 16:53:30 · 505 阅读 · 0 评论 -
C——(单向、单向循环、双向、双向循环)链表学习总结
这段时间一边看书一边把链表的知识总结了一下,并且画了示意图来帮助理解。主要是单向链表,单向循环链表,双向链表,双向循环链表四个部分,每个部分都包括了初始化,创建,插入,删除的基本操作,并总结了各个操作的核心代码。抽空可以看看Linux内核自带的链表(list.h)写法,增进学习。以下的链表均是不操作头节点的。一、单向链表1.单向链表:链式的存储结构,在逻辑上是连续的,每次通过一个指针来指向下一个节点原创 2017-07-25 14:59:53 · 14221 阅读 · 2 评论 -
Socket再学习——开发板ds18b20获取温度值并上报服务器
经过一段时间的学习、积累,自己对于物联网、计算机网络、socket编程等相关的领域和知识有了新的理解,网络部分一直是重中之重。因此重新再学习了Linux下的socket,并结合了一个简单的实际例子再来学习client端与server端工作流程。===========================================文件描述符:实际上就是Linux内核给分配的“称谓”,而在我们的TCP通原创 2017-06-21 16:45:08 · 980 阅读 · 0 评论 -
C——Linux下的串口编程
之前在学习安信可A7模块时,是在PC上使用串口调试助手做了GPS的坐标数据信息的采集,同时分析了一些语句的含义。在这过程中,涉及到对嵌入式开发人员一个非常重要的知识:串口通信。在前篇也说到,我们将会自己写程序来对GPS数据进行解析,而这些数据正是靠串口来传输的。所以,本篇博文将进行关于串口通信的学习。一、串口接头首先我们得知道串口长什么样,常用的串口接头有两种,一种是9针串口(简称DB-9),一种是原创 2017-06-06 19:30:50 · 26593 阅读 · 3 评论 -
Linux——C语言调用sqlite3
之前有记录了在linux下的sqlite3的安装以及简单使用,实际上sqlite3是提供了很多C语言的API接口的,接下来就来结合一个实例来学习C语言+sqlite3的使用。常用的API有: sqlite3_open() sqlite3_prepare() sqlite3_step() sqlite3_column() sqlite3_finalize() sqlite3_close()原创 2017-07-17 15:19:01 · 1319 阅读 · 0 评论 -
C——单向链表的学习
有时在写代码、阅读代码过程中,会感到自己的C语言基础知识不是很牢,因此会导致效率降低。所以,适时地再回过头来温习一下有关的基础知识会增进自己的理解,帮助是很大的。 在此,我自己写了一个程序,以便学习理解数据结构里很基本也很重要的一个部分——链表。当然,链表也可以细分为单链表、双向链表等。这里我写的是单链表。不仅复习了一下数据结构,还复习了一下C语言基础、指针,一举多得。下面把代码分为:链表创建、表原创 2017-07-16 16:00:11 · 612 阅读 · 0 评论 -
stm8——串口printf的实现
串口通信是单片机学习的一个最基本、最重要的功能之一。串口可以间接的当做调试接口使用,实现单片机与电脑之间的通信。还可以与一些模块(比如蓝牙、wifi)通信,也可以作为和其他单片机通信的工具。作为开发者,熟悉串口是必须的。=========================================== STM8L的USART特性: 我们在使用串口的时候,主要关心:波特率、停止位、奇偶校验位。原创 2017-05-30 21:50:02 · 15038 阅读 · 4 评论 -
stm8——LED流水灯实现
最近接触并学习了一款STM8系列的芯片。以前学习了的ARM9+Linux后,再来学习单片机就感到上手很快了。 芯片基本信息:Type:STM8L151G68-bit ultralow power MCU, up to 32 KB Flash, 1 KB Data EEPROM RTC, LCD, timers, USART, I2C, SPI, ADC, DAC, comp原创 2017-05-26 21:25:07 · 6651 阅读 · 1 评论 -
C——container_of宏
container_of 宏: container_of。该宏定义在include/linux/kernel.h中,首先来贴出它的代码:439/**440 * container_of - cast a member of a structure out to the containing structure441 * @ptr: the pointer to the member.442转载 2017-05-01 12:49:12 · 274 阅读 · 0 评论 -
C——函数指针和指针函数的区别
一、函数指针首先它是一个指针,只是这个指针指向的是一个函数。指针变量可以指向变量的地址、数组、字符串、动态分配地址,同时也可指向一个函数,每个函数在编译的时候,系统会分配给该函数一个入口地址,函数名表示这个入口地址,那么指向函数的指针变量称为函数指针变量。表示:struct file_operations {int (*seek) (struct inode * ,struct file *, o转载 2017-04-02 14:38:59 · 542 阅读 · 1 评论 -
C——结构体中的函数指针
在学习驱动程序的时候,代码中常常看到各种结构体,结构体中也有各种函数指针。在这里复习一下结构体,以及指针函数。 结构体一般有以下几种形式的用法: 1、先定义结构类型再定义变量 如:struct xx{ 成员变量列表;…… ……};struct xx *指针变量名;变量初始化:struct xx 变量名={初值1,初值2,……,初值n};2、在定义结构类型的同时也定义变量原创 2017-04-02 14:33:29 · 1912 阅读 · 0 评论 -
ioctl()函数的简单使用——获取本机的IP、掩码、HWaddr
ioctl()函数的详解:http://blog.csdn.net/shanshanpt/article/details/19897897 ioctl和struct ifreq:http://blog.csdn.net/shanshanpt/article/details/19897897 ioctl在socket中的一些用法及示例 ,控制网络文件:http://blog.chinaunix原创 2016-10-30 15:55:26 · 1497 阅读 · 0 评论 -
C——#define和typedef的用法与区别
一、#define 在C语言中#define的作用是宏定义。也就是说,可以使用一个宏名来表示一个字符串,可以包含任何字符,可以是常数、表达式等。但是,它并不在编译过程中执行,而是在预处理阶段(编译之前)就已经完成了,因此#define只是进行了简单的字符串替换,并不执行检查,所以也就难以发现一些潜在的错误或者其他的代码维护问题。一些用法如下:#define INT int //表示在原程序原创 2016-11-12 15:40:42 · 562 阅读 · 0 评论 -
fl2440——u-boot启动过程的简要分析
u-boot是在嵌入式开发中,经常使用的bootloader。 我们知道,在PC上引导程序一般是由BIOS(一段固件程序)开始执行,然后读取硬盘中位于MBR(Main Boot Record,主引导记录)中的Bootloader(如GRUB),后进一步引导操作系统的启动。 而在嵌入式系统中,通常没有BIOS(有的CPU也会内嵌一小段启动程序),所以整一个系统的引导就由bootloader承担了。原创 2016-11-08 19:41:43 · 582 阅读 · 0 评论 -
C——冒泡排序、快速排序,选择排序
在编程中, 排序是数据处理的重要内容。排序的方法有很多种,根据序列的规模以及数据处理的需求,所采用的方法也不同。在这就整理一下简单的三种排序方法。一、冒泡排序冒泡排序的原理是:一次比较相邻的两个数,小的放到前面,大的放到后面。 在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结原创 2017-08-12 16:21:16 · 360 阅读 · 0 评论