- 博客(25)
- 收藏
- 关注
原创 Const关键字用法总结
const关键字在 C 和 C++ 编程语言中用于定义常量,即那些一旦初始化后其值就不能被修改的变量。介绍Const关键字的作用,主要理解指针常数与常数指针:const int *ptr, int const *ptr, int * const ptr, const int * const ptr区别
2024-07-29 22:37:22
775
原创 关于#define的使用方法总结
#define 是 C 和 C++ 编程语言中的预处理指令,用于定义宏(macro)。宏是一种预处理器功能,它允许程序员定义一个标识符(通常是大写字母),该标识符可以被替换为一段代码、表达式或常量值。,#define定义有参函数宏时要注意参数的运算优先级,一定要加括号保护参数
2024-07-29 22:24:18
4228
3
原创 TCP的三次握手和四次挥手
TCP(Transmission Control Protocol)三次握手是建立一个TCP连接的过程中所采用的机制,用于在客户端和服务器之间建立可靠的通信链路。TCP四次挥手(Four-Way Handshake)是TCP协议中用于关闭一个已建立的连接的过程。由于TCP是一种全双工的协议,意味着数据可以双向流动,因此在关闭连接时,每个方向上的连接都需要单独关闭。
2024-07-10 10:07:31
836
原创 解决ssh: connect to host IP port 22: Connection timed out报错(scp传文件指定端口)
错误消息 ssh: connect to host IP port 22: Connection timed out 指出 SSH 客户端尝试连接到指定的 IP 地址和端口号(默认 SSH 端口是 22),但是连接超时了。这意味着客户端没有在预定时间内收到来自服务器的响应。
2024-06-25 12:34:46
31235
4
原创 SQLite数据库(数据库和链表双向转换)
文章主要介绍了关于SQLite数据库的相关信息,SQLIte数据库被称为嵌入式数据库,更加轻量,然后讲到了数据库的安装方法,数据库的常用命令,以及使用C语言编程操作数据库。文章还提到了数据库的相关API,以及链表和SQLite数据库中的数据双向转换的编程方法。
2024-06-22 17:16:17
1274
转载 基于VMware虚拟机的Ubuntu22.04系统安装和配置(新手保姆级教程)
即将学习嵌入式 Linux 系统编程的小伙伴,基本上都是在虚拟机上安装 Ubuntu 系统来学习的。但是作为初学者,可能并不知道什么是虚拟机、怎么安装虚拟机。同时,对 Linux 系统也有很多不解, 比如什么是 Linxu 系统、Linux 系统发行版该选哪个学习等等诸多问题。那么本篇博文将一一解答这些问题,并且把学习 Linux 系统编程的环境搭建好,方便后期的学习。
2024-06-19 20:50:08
968
转载 OrangePi ZERO 2 新手配置教程(保姆级新手教程)
接线是新手最容易犯错的地方,很多小白以为把引脚一一对应起来就可以了,也就是把香橙派的 TX 和 USB 转 TTL 的 TX 接一起,香橙派的 RX 和 USB 转 TTL 的 RX 接一起就可以了。,没啥特殊含义,就是为了看看有没有设置成功,小伙伴可以使用原来的静态 IP,因为修改成其他 IP 地址的前提,所写入的 IP 地址没有其他设备在使用,因为同一局域网下,不同设备之间不能使用同一个 IP 地址,我这里已经确定了我填入的这个没有设备在使用,所以可以写入。
2024-06-19 20:41:17
454
原创 Linux进程间通信---使用【共享内存+信号量+消息队列】的组合来实现服务器进程与客户进程间的通信
使用【共享内存+信号量+消息队列】的组合来实现服务器进程与客户进程间的通信。- 共享内存用来传递数据;- 信号量用来同步;- 消息队列用来 在客户端修改了共享内存后通知服务器读取。
2024-06-12 17:29:40
517
原创 不同进程间发送与接收携带字符串的信号(使用共享内存方式)
在学习的过程中发现,在父子进程,或者同一进程中发送一个带有字符串的信号是可以完成字符串打印的工作,但是如果在不同进程之间打印传递的字符串便会出现段错误的情况,为了解决这个问题,可以使用共享内存的方法,信号处理函数应该尽量简单和快速,避免在其中进行耗时或阻塞的操作,以免影响程序的正常执行。对于复杂的信号处理逻辑,可能需要考虑使用其他机制,如信号队列或异步 I/O。
2024-06-12 17:23:12
296
原创 Linux进程间通信(超详细介绍各种IPC方式)
本章文章详细介绍了Linux进程间通信的几种方式:管道、FIFO(命名管道)、消息队列、共享内存、信号以及信号量。除了相关API的介绍还有具体代码实例的应用方式,可以实现不同进程间发送与接收携带字符串的信号(共享内存方式),多种IPC结合的方式(共享内存+信号量+消息列队)实现服务器进程与客户进程的通信。
2024-06-12 16:56:14
846
原创 Linux网络编程
网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包,在接收端按照规定好的协议把包进行解析,从而提取出对应的信息,达到通信的目的。其中socket编程是网络常用的编程,我们通过在网络中创建socket套接字来实现网络间的通信。套接字Socket=(IP地址:端口号),套接字的表示方法是点分十进制的lP地址后面写上端口号,中间用冒号或逗号隔开。每一个传输层连接唯一地被通信两端的两个端点(即两个套接字)所确定。
2024-06-03 23:09:57
1331
原创 基于Socket套接字的FTP服务简单实现
1、利用套接字实现客户端和服务端的连接;2、服务端和客户端可以互传文件;3、客户端和服务端信息交互实现类似Linux系统下vi的快捷指令操作。
2024-06-03 22:58:49
870
1
原创 Vim代码自动对齐技巧
VIM编辑小技巧:代码自动对齐自动对齐:(gg=G)在命令模式下(即非“插入”等编辑模式):先输入gg,这时候光标会移动到第一行第一个字符;然后按 “=” 号之后切换成大写,再按一下G,这时候光标会移到最后一行的第一个字符,这时候就可以看到代码被排得整整齐齐了!
2024-05-24 15:23:35
744
1
原创 Linux系统编程-线程
本篇文章主要介绍了线程的一些概念和关于线程的一些常用API的使用,比如线程自身的API:pthread_slef、pthread_equal,创建线程pthread_create、退出线程pthread_exit、等待线程pthread_join;互斥锁相关API:创建锁pthread_mutex_init、销毁锁pthread_mutex_destroy,加锁pthread_mutex_lock、解锁pthread_mutex_unlock;还有和条件变量相关API等
2024-05-23 20:04:20
869
3
原创 Linux系统编程-进程
Linux进程的概念和相关函数的使用方法实例,包括fork、vfork创建进程,exit进程终止,wait、waitpid等待进程退出,exec族函数、system函数和popen函数的使用
2024-05-21 20:03:38
1077
1
原创 Linux系统文件编程
Linux系统中的文件编程操作函数介绍与实例,包括文件描述符的介绍,操作文件相关的API:open、write、read、close以及lseek的使用实例
2024-05-15 10:04:57
1068
原创 # Linux环境基于Ncurse图形库的C语言小游戏
Linux环境下基于Ncurses图形库的贪吃蛇小游戏Ncurses简介和贪吃蛇小游戏的制作过程
2024-05-11 17:24:42
1058
1
原创 电动车简易报警器-51入门项目
当主人离开电动车锁车后,开启电动车警报模式:有人靠近电动车并使电车震动,电车会一直发出警报,电车没有震动则不会报警;当主人在电车附近不需要锁车时,可以电动车警报模式,电车即使发生震动也不会报警。
2024-04-16 17:22:30
1243
原创 sizeof和strlen的区别
sizeof() 和 strlen() 在 C 语言中两个非常常用,它们都与计算内存大小有关,但是它们的作用是不同的。
2024-04-15 22:41:20
356
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人