<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ZHENYU的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ZHNEYU</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ZHNEYU]]></copyright><item><title><![CDATA[IAR自动生成带CRC-32/MPEG-2校验的bin文件]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/132759974</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/132759974</guid><author>ZHNEYU</author><pubDate>Fri, 08 Sep 2023 14:46:36 +0800</pubDate><description><![CDATA[下面的选项使用CRC-32/MPEG-2为例生成对应代码区域的校验码： 在IAR Embedded Workbench工程选项（Options）里面Linker选项里面生成Checksum。]]></description><category></category></item><item><title><![CDATA[keil 生成bin文件自动在文件末尾加入crc32校验]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/132722252</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/132722252</guid><author>ZHNEYU</author><pubDate>Wed, 06 Sep 2023 19:51:51 +0800</pubDate><description><![CDATA[新建一个txt文件，复制如下内容，保存并更改文件名后缀为.bat。还可以知道该CRC校验使用的是哪一个参数模型~将如上代码命名为tool.bat放到如图目录。下载add_crc32.exe也放到该目录。点击编译即可自动完成命名和加入crc检验。将keil中user配置成上图红框。Options ->User配置。不放心的话可以去验证一波~]]></description><category></category></item><item><title><![CDATA[keil如何生成bin文件]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/132722182</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/132722182</guid><author>ZHNEYU</author><pubDate>Wed, 06 Sep 2023 19:43:12 +0800</pubDate><description><![CDATA[keil如何生成bin文件]]></description><category></category></item><item><title><![CDATA[C语言运算符优先级列表(超详细)]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/126230312</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/126230312</guid><author>ZHNEYU</author><pubDate>Mon, 08 Aug 2022 16:28:10 +0800</pubDate><description><![CDATA[算术运算符 > 关系运算符 > && > || > 赋值运算符。同一优先级的运算符，运算次序由结合方向所决定。]]></description><category></category></item><item><title><![CDATA[Linux下如何设置程序的开机自启动功能]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/126138698</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/126138698</guid><author>ZHNEYU</author><pubDate>Wed, 03 Aug 2022 13:47:29 +0800</pubDate><description><![CDATA[crond 是 linux 下用来周期性的执行某种任务或等待处理某些事件的一个守护进程，与 windows 下的计划任务类似，当安装完成操作系统后，默认会安装此服务 工具，并且会自动启动 crond 进程，crond 进程每分钟会定期检查是否有要执行的任务，如果有要执行的任务，则自动执行该任务。Systemd 服务是一种以 .service 结尾的单元（unit）配置文件，用于控制由 Systemd 控制或监视的进程。但是这个方法，我怎么都试不成功，如果有人知道怎么设置或知道问题出在哪的话，欢迎指点。...]]></description><category></category></item><item><title><![CDATA[进程间的六种通信方式之socket]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/126086778</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/126086778</guid><author>ZHNEYU</author><pubDate>Sun, 31 Jul 2022 16:14:52 +0800</pubDate><description><![CDATA[对于UDP来说，不需要要维护连接，那么也就没有所谓的发送方和接收方，甚至都不存在客户端和服务端的概念，只要有一个socket多台机器就可以任意通信，因此每一个UDP的socket都需要bind。UDP是没有连接的，所以不需要三次握手，也就不需要像TCP调用listen和connect，但是UDP的交互仍然需要IP地址和端口号，因此也需要bind。所以，监听的socket和真正用来传送数据的socket，是「这里需要注意的是，服务端调用。...]]></description><category></category></item><item><title><![CDATA[Linux 4G模块pppd拨号上网脚本解析]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/126082256</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/126082256</guid><author>ZHNEYU</author><pubDate>Sun, 31 Jul 2022 10:15:10 +0800</pubDate><description><![CDATA[在编写脚本之前，要先安装好ppp相关驱动，pppd已知pppd位于/usr/sbin,chat位于/usr/sbin,options位于/etc/ppp。要编写脚本，就要切换目录到/etc/ppp/peers，若没有peers目录则自行创建。因为是在/etc目录之下，需要使用sudo或者进入root模式才能创建或者编辑。安装ppp时，pppd就已经被固定到系统路径/etc/ppp找options,到/etc/ppp/peers找脚本文件。namename。...]]></description><category></category></item><item><title><![CDATA[进程间的六种通信方式——管道 命名管道 详解]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/126044287</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/126044287</guid><author>ZHNEYU</author><pubDate>Thu, 28 Jul 2022 21:33:06 +0800</pubDate><description><![CDATA[本篇紧接上篇信号——管道信号(Signal)socket信号量(Semaphore)共享内存(SharedMemory)消息队列(MessageQueue)]]></description><category></category></item><item><title><![CDATA[gcc编译命令的常用选项——强烈推荐大家使用 -Wall 选项]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/126038614</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/126038614</guid><author>ZHNEYU</author><pubDate>Thu, 28 Jul 2022 17:06:20 +0800</pubDate><description><![CDATA[-Wall：开启所有警告（可以理解为warinig all），使用它能够使GCC产生尽可能多的警告信息。（非常推荐使用该选项）
GCC给出的警告信息虽然从严格意义上说不能算作错误，但却很可能**成为错误的栖身之所**。一个优秀的Linux程序员应该尽量避免产生警告信息，使自己的代码始终保持标准、健壮的特性使用它能够使GCC产生尽可能多的警告信息。。所以将警告信息当成编码错误来对待，是一种值得赞扬的行为！...]]></description><category></category></item><item><title><![CDATA[进程间的通信——信号篇]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/126025652</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/126025652</guid><author>ZHNEYU</author><pubDate>Thu, 28 Jul 2022 00:05:45 +0800</pubDate><description><![CDATA[而常用的进程间通信(IPC,Inter-Process Communication)的方法有如下六种:
信号(Signal )
管道(Pipe)
- socket
信号量(Semaphore)
共享内存(Shared Memory)
消息队列(Message Queue)

这里先什么是信号？信号是一种软件中断，提供了一种处理异步事件的方法，也是进程间通信的唯一一个异步的通信方式。Unix中定义了很多信号，有很多条件可以产生信号，对于这些信号有不同的处理方式。进程间信号是如何通信的？.........]]></description><category></category></item><item><title><![CDATA[chat(8)程序 man手册]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/126017087</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/126017087</guid><author>ZHNEYU</author><pubDate>Wed, 27 Jul 2022 16:10:49 +0800</pubDate><description><![CDATA[chat程序定义了计算机和调制解调器之间的对话交换。它的主要目的是在点对点协议守护进程(pppd)和远程的pppd进程之间建立连接。]]></description><category></category></item><item><title><![CDATA[popen()函数详解 具体问题具体分析 popen函数获取不到标准I/O流]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/125995824</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/125995824</guid><author>ZHNEYU</author><pubDate>Tue, 26 Jul 2022 15:38:14 +0800</pubDate><description><![CDATA[先简单的解释一下popen函数吧~popen() 函数通过创建一个管道，调用 fork 产生一个子进程，执行一个 shell 以运行命令来开启一个进程。这个进程必须由 pclose() 函数关闭，而不是 fclose() 函数。pclose() 函数关闭标准 I/O 流，等待命令执行结束，然后返回 shell 的终止状态。如果 shell 不能被执行，则 pclose() 返回的终止状态与 shell 已执行 exit 一样。type 参数只能是读或者写中的......]]></description><category></category></item><item><title><![CDATA[pppd程序的参数——man手册翻译]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/125914444</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/125914444</guid><author>ZHNEYU</author><pubDate>Thu, 21 Jul 2022 16:09:07 +0800</pubDate><description><![CDATA[Point-to-Point Protocol Daemon——点对点协议守护进程pppd   [  options  ]PPP是用于在拨号调制解调器、DSL连接和许多其他类型上建立互联网连接的协议点对点的链接。pppd守护进程与内核PPP驱动程序一起建立和维护PPP与另一个系统(称为对等体)连接，并协商互联网协议(IP)地址的每一端链接。Pppd还可以对对等体进行认证和/或向对等体提供认证信息。PPP可以使用与IP以外的其他网络协议，但这种使用正变得越来越少。noauth		//不需要身份验证我们通常把这]]></description><category></category></item><item><title><![CDATA[TCP数据包发送的过程及实际问题解决 判断socket是否断开 解决socket数据传输数据丢失的问题]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/125828679</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/125828679</guid><author>ZHNEYU</author><pubDate>Sun, 17 Jul 2022 11:03:40 +0800</pubDate><description><![CDATA[​先来简单描述一下场景，就是客户端向服务器端每隔一段时间上报数据，就比如说蔬菜大棚上报温湿度等信息给服务器，但是凡事总有意外发生，如果服务器发生故障或网络断开，二者之间建立的连接也随之断开了，那么数据将何去何从，当然是保存到数据库中了，如果write失败就保存到数据库中，待重连成功后再继续发送。这是篇文章是在看了今日头条后，回想起来自己曾今遇到过的一个关于socket套接字发送数据的问题，当时解决后并没有记录下来，现在正好看到了与之息息相关的知识，于是打算简单的谈一下~...]]></description><category></category></item><item><title><![CDATA[C语言串口编程收发数据 并实现AT指令的收发 可变参数控制串口属性 树莓派4G模块]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/125799855</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/125799855</guid><author>ZHNEYU</author><pubDate>Fri, 15 Jul 2022 11:41:39 +0800</pubDate><description><![CDATA[Linux下串口编程的流程

串口编程可以简单概括为如下几个步骤：

​		1.打开串口
​		2.串口初始化
​		3.读串口或写串口
​		4.关闭串口]]></description><category></category></item><item><title><![CDATA[daemon函数理解及参数使用——daemon后进程退出的原因]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/124559605</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/124559605</guid><author>ZHNEYU</author><pubDate>Tue, 03 May 2022 19:53:35 +0800</pubDate><description><![CDATA[最近在使用daemon函数的时候，遇到了一个不算问题的问题，一开始没有发现也是由于我对这个函数的参数没有深入了解过。下面来稍微深入了解一下这个函数：
linux提供了daemon函数⽤于创建守护进程，使进程脱离控制台，在后台运行。
函数原型：
头文件
#include &lt;unistd.h&gt;

int daemon(int nochdir, int noclose);


当nochdir为0时，daemon将更改进程的根⽬录为root(“/”)。（我就是在这里犯的错误）
当noclose为0时，]]></description><category></category></item><item><title><![CDATA[E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/124306452</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/124306452</guid><author>ZHNEYU</author><pubDate>Wed, 20 Apr 2022 20:48:58 +0800</pubDate><description><![CDATA[Ubuntu安装make的时候报错：

翻译过来就是：

无法获取lock/var/lib/dpkg/lock frontend-打开（11：资源暂时不可用）
无法获取dpkg前端锁（/var/lib/dpkg/lock-frontend），是否有另一个进程在使用它？

看了别人的博客的解决方法是：
sudo rm /var/lib/dpkg/lock-frontend      //这里直接删除锁文件  
sudo rm /var/lib/dpkg/lock

这里我只删了第一个就已经可以正常下载make]]></description><category></category></item><item><title><![CDATA[select、poll和epoll编写简单高并发服务器]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/124201659</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/124201659</guid><author>ZHNEYU</author><pubDate>Sat, 16 Apr 2022 19:59:31 +0800</pubDate><description><![CDATA[1. select()函数
select是一个计算机函数，位于头文件#include &lt;sys/select.h&gt; 。该函数用于监视文件描述符的变化情况——读写或是异常。

头文件

#include &lt;sys/select.h&gt;
//使用select可能会用到的头文件
#include &lt;sys/time.h&gt;
#include &lt;sys/types.h&gt;
#include &lt;unistd.h&gt;


函数原型
int select (int ma]]></description><category></category></item><item><title><![CDATA[socket多进程网络编程逐步解析]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/124018468</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/124018468</guid><author>ZHNEYU</author><pubDate>Fri, 08 Apr 2022 17:05:39 +0800</pubDate><description><![CDATA[1.fork()函数创建子进程

头文件
#include&lt;unistd.h&gt;
#include&lt;sys/types.h&gt;
函数原型
pid_t fork( void);
（pid_t 是一个宏定义，其实质是int，被定义在#includesys/types.h&gt;中）
返回值： 若成功调用一次则返回两个值，子进程返回0，父进程返回子进程ID；否则，出错返回-1
函数说明
一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程。fork函数被调用一次但]]></description><category></category></item><item><title><![CDATA[socket多线程]]></title><link>https://blog.youkuaiyun.com/ZHNEYU/article/details/123933301</link><guid>https://blog.youkuaiyun.com/ZHNEYU/article/details/123933301</guid><author>ZHNEYU</author><pubDate>Wed, 06 Apr 2022 20:25:38 +0800</pubDate><description><![CDATA[头文件
#include &lt;pthread.h&gt;
Compile and link with -pthread.
gcc编译的时候一定要加**-lpthread**选项告诉链接器在链接的时候要连接pthread库。
1. 关于线程的常用函数及简单说明
int pthread_create(
                 pthread_t *restrict tidp,
                 const pthread_attr_t *restrict attr,
       ]]></description><category></category></item></channel></rss>