
日常笔记
文章平均质量分 75
yi只宇
这个作者很懒,什么都没留下…
展开
-
C语言运算符优先级列表(超详细)
算术运算符 > 关系运算符 > && > || > 赋值运算符。同一优先级的运算符,运算次序由结合方向所决定。转载 2022-08-08 16:28:10 · 637 阅读 · 1 评论 -
进程间的六种通信方式之socket
对于UDP来说,不需要要维护连接,那么也就没有所谓的发送方和接收方,甚至都不存在客户端和服务端的概念,只要有一个socket多台机器就可以任意通信,因此每一个UDP的socket都需要bind。UDP是没有连接的,所以不需要三次握手,也就不需要像TCP调用listen和connect,但是UDP的交互仍然需要IP地址和端口号,因此也需要bind。所以,监听的socket和真正用来传送数据的socket,是「这里需要注意的是,服务端调用。...原创 2022-07-31 16:14:52 · 7536 阅读 · 1 评论 -
进程间的六种通信方式——管道 命名管道 详解
本篇紧接上篇信号——管道信号(Signal)socket信号量(Semaphore)共享内存(SharedMemory)消息队列(MessageQueue)原创 2022-07-28 21:33:06 · 1682 阅读 · 0 评论 -
gcc编译命令的常用选项——强烈推荐大家使用 -Wall 选项
-Wall:开启所有警告(可以理解为warinig all),使用它能够使GCC产生尽可能多的警告信息。(非常推荐使用该选项)GCC给出的警告信息虽然从严格意义上说不能算作错误,但却很可能**成为错误的栖身之所**。一个优秀的Linux程序员应该尽量避免产生警告信息,使自己的代码始终保持标准、健壮的特性使用它能够使GCC产生尽可能多的警告信息。。所以将警告信息当成编码错误来对待,是一种值得赞扬的行为!...原创 2022-07-28 17:06:20 · 7155 阅读 · 0 评论 -
进程间的通信——信号篇
而常用的进程间通信(IPC,Inter-Process Communication)的方法有如下六种:信号(Signal )管道(Pipe)- socket信号量(Semaphore)共享内存(Shared Memory)消息队列(Message Queue)这里先什么是信号?信号是一种软件中断,提供了一种处理异步事件的方法,也是进程间通信的唯一一个异步的通信方式。Unix中定义了很多信号,有很多条件可以产生信号,对于这些信号有不同的处理方式。进程间信号是如何通信的?.........原创 2022-07-28 00:05:45 · 2083 阅读 · 0 评论 -
chat(8)程序 man手册
chat程序定义了计算机和调制解调器之间的对话交换。它的主要目的是在点对点协议守护进程(pppd)和远程的pppd进程之间建立连接。翻译 2022-07-27 16:10:49 · 4917 阅读 · 0 评论 -
popen()函数详解 具体问题具体分析 popen函数获取不到标准I/O流
先简单的解释一下popen函数吧~popen() 函数通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程。这个进程必须由 pclose() 函数关闭,而不是 fclose() 函数。pclose() 函数关闭标准 I/O 流,等待命令执行结束,然后返回 shell 的终止状态。如果 shell 不能被执行,则 pclose() 返回的终止状态与 shell 已执行 exit 一样。type 参数只能是读或者写中的......原创 2022-07-26 15:38:14 · 7400 阅读 · 1 评论 -
pppd程序的参数——man手册翻译
Point-to-Point Protocol Daemon——点对点协议守护进程pppd [ options ]PPP是用于在拨号调制解调器、DSL连接和许多其他类型上建立互联网连接的协议点对点的链接。pppd守护进程与内核PPP驱动程序一起建立和维护PPP与另一个系统(称为对等体)连接,并协商互联网协议(IP)地址的每一端链接。Pppd还可以对对等体进行认证和/或向对等体提供认证信息。PPP可以使用与IP以外的其他网络协议,但这种使用正变得越来越少。noauth //不需要身份验证我们通常把这翻译 2022-07-21 16:09:07 · 4190 阅读 · 0 评论 -
TCP数据包发送的过程及实际问题解决 判断socket是否断开 解决socket数据传输数据丢失的问题
先来简单描述一下场景,就是客户端向服务器端每隔一段时间上报数据,就比如说蔬菜大棚上报温湿度等信息给服务器,但是凡事总有意外发生,如果服务器发生故障或网络断开,二者之间建立的连接也随之断开了,那么数据将何去何从,当然是保存到数据库中了,如果write失败就保存到数据库中,待重连成功后再继续发送。这是篇文章是在看了今日头条后,回想起来自己曾今遇到过的一个关于socket套接字发送数据的问题,当时解决后并没有记录下来,现在正好看到了与之息息相关的知识,于是打算简单的谈一下~...原创 2022-07-17 11:03:40 · 1827 阅读 · 0 评论 -
C语言串口编程收发数据 并实现AT指令的收发 可变参数控制串口属性 树莓派4G模块
Linux下串口编程的流程串口编程可以简单概括为如下几个步骤: 1.打开串口 2.串口初始化 3.读串口或写串口 4.关闭串口原创 2022-07-15 11:41:39 · 3230 阅读 · 0 评论 -
域名解析——gethostbyname()函数及socket客户端域名解析
###gethostbyname()函数说明gethostbyname()——用域名或主机名获取IP地址头文件:#include <netdb.h>#include <sys/socket.h>函数原型:struct hostent *gethostbyname(const char *name);这个函数的传入值是域名或者主机名。返回值是一个hostent的结构体。如果函数调用失败,返回NULL。结构如下:struct hostent{ cha原创 2022-03-26 22:16:52 · 4806 阅读 · 0 评论 -
daemon函数理解及参数使用——daemon后进程退出的原因
最近在使用daemon函数的时候,遇到了一个不算问题的问题,一开始没有发现也是由于我对这个函数的参数没有深入了解过。下面来稍微深入了解一下这个函数:linux提供了daemon函数⽤于创建守护进程,使进程脱离控制台,在后台运行。函数原型:头文件#include <unistd.h>int daemon(int nochdir, int noclose);当nochdir为0时,daemon将更改进程的根⽬录为root(“/”)。(我就是在这里犯的错误)当noclose为0时,原创 2022-05-03 19:53:35 · 2627 阅读 · 0 评论 -
accept函数的第三个参数的初始化问题
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2022-03-17 22:55:42 · 284 阅读 · 0 评论 -
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
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原创 2022-04-20 20:48:58 · 10407 阅读 · 2 评论 -
__FUNCTION__、__FILE__等调试宏
C语言提供了很多宏,今天学习的过程中见到了__FUNCTION__这个宏,顺便百度了一下其它常见的宏。下面找了几个简单的例子。__FUNCTION__:当前函数的名称__FILE__:当前文件的名称__DATE__:代码运行时的日期 __TIME__:代码运行时的时间 __LINE__:所在行数参考代码:#include <stdio.h>void test(){ printf("Another function is: %s\n", __FUNCTION_原创 2022-03-29 17:29:19 · 2928 阅读 · 0 评论