<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_42052049的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_42052049</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_42052049]]></copyright><item><title><![CDATA[实训第九天]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107371067</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107371067</guid><author>qq_42052049</author><pubDate>Wed, 15 Jul 2020 21:45:38 +0800</pubDate><description><![CDATA[今天主要学习了线程与进程之间的关系：

线程是任务调度和执行的基本单元

进程实现多任务的缺点：
1）进程间切换的计算机资源开销很大，切换效率很低
2）进程间数据共享的开销也很大

pthread_cancel（）功能：当线程是死循环时，可以调动这个函数主动取消该线程。（必须发生系统调用）
成功返回0 失败返回非0

pthread_exit() 功能：线程调用这个函数，可以主动退出（终止）。这类似于exit函数，不过exit是终止整个进程的，而pthread_exit是终止次线程的。如果你在次线程里面调用]]></description><category></category></item><item><title><![CDATA[实训第八天（二）]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107347031</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107347031</guid><author>qq_42052049</author><pubDate>Tue, 14 Jul 2020 20:38:11 +0800</pubDate><description><![CDATA[文件写入三行字符，再顺序读出三行：


#include&lt;stdio.h&gt;
#include&lt;string.h&gt;
#include&lt;stdlib.h&gt;

#include&lt;sys/types.h&gt;
#include&lt;sys/stat.h&gt;
#include&lt;fcntl.h&gt;
#include&lt;errno.h&gt;
#include&lt;unistd.h&gt;

#define MAX_SIZE 1024

void read]]></description><category></category></item><item><title><![CDATA[实训第八天（一）]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107346879</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107346879</guid><author>qq_42052049</author><pubDate>Tue, 14 Jul 2020 20:31:08 +0800</pubDate><description><![CDATA[今天主要是进行了代码的编写：有关Linux下的文件创建，关闭，读写函数简单应用


#include&lt;stdio.h&gt;
#include&lt;stdlib.h&gt;
#include&lt;string.h&gt;

#include&lt;sys/types.h&gt;
#include&lt;sys/stat.h&gt;
#include&lt;fcntl.h&gt;
#include&lt;errno.h&gt;
#include&lt;unistd.h&gt;

//在调用系统函数时]]></description><category></category></item><item><title><![CDATA[实训第七天]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107327634</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107327634</guid><author>qq_42052049</author><pubDate>Mon, 13 Jul 2020 23:16:20 +0800</pubDate><description><![CDATA[嵌入式C编程：语法，使用
嵌入式LinuxC编程：在Linux上使用C语言调用操作系统功能接口开发应用程序
嵌入式为什么要移植操作系统?
1,提供软件的移植性
2，操作系统提供了多任务操作
3，操作系统提供了丰富的网络协议栈
4，操作系统将所有设备抽象成文件，方便访问设备

嵌入式LinuxC编程：文件编程，多任务编程，网络编程
1，Linux系统构成/划分；用户空间，内核空间
&lt;为什么将系统划分为用户空间和内核空间？&gt;
保护内核的安全；
&lt;用户该如何访问内核空间？&gt;
通过系统调用；]]></description><category></category></item><item><title><![CDATA[实训第六天（单链表的简单使用）]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107265412</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107265412</guid><author>qq_42052049</author><pubDate>Fri, 10 Jul 2020 20:07:57 +0800</pubDate><description><![CDATA[第六天：
数据结构-链表（单链表）
1，数据结构学习：写代码
2，嵌入式方向需要掌握那些数据类型：栈，队列，链表，二叉树，平衡二叉树，红黑树，哈希表，图
3，数据结构推荐书籍：大话数据结构，csdn
4，数据结构的作用：管理数据的存和取
5，链表：动图管理；使用时分配&lt;为什么需要链表？数组静态存储，空间利用效率不高&gt;
6，链表原理：


#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

struct node
{
    int num; .]]></description><category></category></item><item><title><![CDATA[C的简单应用（第五天）]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107233829</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107233829</guid><author>qq_42052049</author><pubDate>Thu, 09 Jul 2020 20:09:28 +0800</pubDate><description><![CDATA[项目名称
			     【物联网工程实践 --苏嵌实训第5天】
		今日进度以及任务
			
			1，free是如何知道需要释放的空间大小。（实现原理）
			2，static在什么样的情况下使用？
			3，为什么要使用typedef给类型重命名？
			
		本日任务完成情况
			
			1：free函数通常和malloc函数共同使用，malloc函数通过操作系统分配，直接得到一个满足程序要求的内存块，但是对于操作系统来说，它还会分配一个管理块，但是这个管理块是方便操作系统使用的，而用...]]></description><category></category></item><item><title><![CDATA[C的简单应用]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107216033</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107216033</guid><author>qq_42052049</author><pubDate>Wed, 08 Jul 2020 21:53:34 +0800</pubDate><description><![CDATA[不借助第三方变量，交换两个变量值


#include&lt;stdio.h&gt;
void fun_change1(int a,int b)
{
	a = a ^ b;
	b = a ^ b;
	a = a ^ b;

	printf("a = %d\n",a);
	printf("b = %d\n",b);
}

void fun_change2(int a,int b)
{
	a = a + b;
	b = a - b;
	a = a - b;

	printf("a = %d\n",a);
	..]]></description><category></category></item><item><title><![CDATA[实训第四天（环境：VM中的Centos）]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107214243</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107214243</guid><author>qq_42052049</author><pubDate>Wed, 08 Jul 2020 20:40:54 +0800</pubDate><description><![CDATA[项目名称
			     【物联网工程实践 --苏嵌实训第4天】
		今日进度以及任务
			
			自定义三个输出函数，依次输出字符型的一维数组，二维数组，三维数组。
			
		本日任务完成情况
			
			代码及运行结果：

			
			
			
			
		本日开发中出现的问题汇总
			
		本日未解决问题
			
		本日开发收获
			
			1，不借助第三方变量，交换两个数的值

			2，简单移位操作

			3，宏定义
			 宏函数：用编译时间换内存空间和运行时...]]></description><category></category></item><item><title><![CDATA[苏嵌实训第三天]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107190657</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107190657</guid><author>qq_42052049</author><pubDate>Tue, 07 Jul 2020 21:13:41 +0800</pubDate><description><![CDATA[C语言概述：
C语言之父：丹尼斯里奇
	C语言优势（特点）：
	直接访问数据
		运行效率高
		移植性
	
	C语言为什么能够直接访问硬件？
它有指针类型

4.嵌入式开发为什么要用到C语言？

所有操作系统的内核都由C语言开发的

5.C语言标准：C89、C99、C11



数据类型
所有的数据类型定义、初始化：
练习
1.用变量a给出下面的定义

b)一个指向整型数的指针                                ...]]></description><category></category></item><item><title><![CDATA[VMware虚拟机下的centos简单应用]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107168406</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107168406</guid><author>qq_42052049</author><pubDate>Mon, 06 Jul 2020 21:30:39 +0800</pubDate><description><![CDATA[项目名称
			     【物联网工程实践 --苏嵌实训第2天】
		今日进度以及任务
			
			1.编译器三级优化分别优化了那些？

			2.总结gcc静态库和动态库的制作；

			3.总结CMake用法；
			
		本日任务完成情况
			
			1：内容较多，故转载：https://blog.youkuaiyun.com/zwt0112/article/details/53141752

			2：静态库的建立：

			 第一步：先生成汇编文件

			      gcc...]]></description><category></category></item><item><title><![CDATA[VMware虚拟机下的centos（一）]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/107116025</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/107116025</guid><author>qq_42052049</author><pubDate>Fri, 03 Jul 2020 21:51:03 +0800</pubDate><description><![CDATA[项目名称
			     【物联网工程实践 --苏嵌实训第1天】
		今日进度以及任务
			
			1.嵌入式底层开发为什么选择C？

			2.什么是实时性？区分硬实时和软实时。

			3.Linux和UNIX之间的联系或者关系。

			4.Linux主流的发行版有哪些及特点。

			5.有哪些虚拟机软件？特点？

			6.如何解决使用userdel 删除用户的问题。（两种方案）

			7.罗列根目录中所有子目录的功能及存放的文件类型。
			
		本日任务完成情况
			
			...]]></description><category></category></item><item><title><![CDATA[大数相乘，基本数组实现]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/86918995</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/86918995</guid><author>qq_42052049</author><pubDate>Sun, 10 Feb 2019 18:08:04 +0800</pubDate><description><![CDATA[#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;string.h&amp;gt;
# define MAX  200
void multiplay(int a[],int b[],int c[],int len_a,int len_b)
{
    int p[MAX][MAX],i,j,x;          //p[len_b][len_a]
    for(i=0;i&amp;lt;...]]></description><category></category></item><item><title><![CDATA[利用结构体求中点坐标，两点距离]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/83826990</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/83826990</guid><author>qq_42052049</author><pubDate>Wed, 07 Nov 2018 17:06:12 +0800</pubDate><description><![CDATA[//编写一个程序，输入二维坐标中的两点坐标，计算并输出
//这两点之间的中点坐标与距离
#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;math.h&amp;gt;
typedef struct                              //初步定义坐标结构体
{
   float x,y;
}Point;
Point Input(void)            ...]]></description><category></category></item><item><title><![CDATA[结构体初级]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/83793146</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/83793146</guid><author>qq_42052049</author><pubDate>Tue, 06 Nov 2018 19:59:36 +0800</pubDate><description><![CDATA[//设有三个候选人，每次输入一个候选人名字
//要求最后输出三个候选人的得票数
#include&amp;lt;stdio.h&amp;gt;
#include&amp;lt;string.h&amp;gt;
struct  Person             
{
    char name[10];
    int count;
};
int main()
{
    struct Person p1={&quot;张三&quot;,0},p...]]></description><category></category></item><item><title><![CDATA[约瑟夫问题-----方法一：顺序表求解  C程序]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/82837929</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/82837929</guid><author>qq_42052049</author><pubDate>Tue, 25 Sep 2018 12:52:52 +0800</pubDate><description><![CDATA[  据说著名犹太历史学家 Josephus有过以下的故事：在罗马人占领乔塔帕特后，39 个犹太人与Josephus及他的朋友躲到一个洞中，39个犹太人决定宁愿死也不要被敌人抓到，于是决定了一个自杀方式，41个人排成一个圆圈，由第1个人开始报数，每报数到第3人该人就必须自杀，然后再由下一个重新报数，直到所有人都自杀身亡为止。Josephus要他的朋友先假装遵从，他将朋友与自己安排在第16个与第31个...]]></description><category></category></item><item><title><![CDATA[求鞍点方法二]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/82526269</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/82526269</guid><author>qq_42052049</author><pubDate>Sat, 08 Sep 2018 09:23:12 +0800</pubDate><description><![CDATA[//求鞍点 
//鞍点：行最大，列最小

本方案采用了一些优化算法，先求出每行最大，将其放入一个数组中，然后再求出每列最小，在进行两个数组的比较，得出鞍点。这是典型的以空间换效率，即以牺牲空间为代价，使得算法更加易于理解且执行效率有了一定的提高。这是一种比较简单的数据结构的思想。

#include&amp;lt;stdio.h&amp;gt;
int main()
{
   int a[3][4];
   in...]]></description><category></category></item><item><title><![CDATA[求鞍点的方法1  C程序]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/82457150</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/82457150</guid><author>qq_42052049</author><pubDate>Thu, 06 Sep 2018 11:11:52 +0800</pubDate><description><![CDATA[//求鞍点 
//鞍点：行最大，列最小       //方法二见下一篇
#include&amp;lt;stdio.h&amp;gt;
int main()
{
   int a[3][4];
   int i,j,h,l;
   int min,max;
   int count,c=0;
   printf(&quot;请输入三行四列的数组\n&quot;);
   for(i=0;i&amp;lt;3;i++)            ...]]></description><category></category></item><item><title><![CDATA[全局变量定义后在之后的所有函数中都不再需要定义]]></title><link>https://blog.youkuaiyun.com/qq_42052049/article/details/80057633</link><guid>https://blog.youkuaiyun.com/qq_42052049/article/details/80057633</guid><author>qq_42052049</author><pubDate>Mon, 23 Apr 2018 22:35:01 +0800</pubDate><description><![CDATA[#include&amp;lt;stdio.h&amp;gt;int b[3][3];int fun(int a[3][3],int m,int n)\\函数的功能是实现B=A+A',即把矩阵A加上A的转置，存放到矩阵B中{ int i,j; for(i=0;i&amp;lt;3;i++)  for(j=0;j&amp;lt;3;j++)  {   b[i][j]=a[i][j]+a[j][i];  }  return b;}i...]]></description><category></category></item></channel></rss>