- 博客(14)
- 收藏
- 关注
原创 信号量介绍及案例
核心思想是:通过一个变量(信号量的值)来控制多个进程对共享资源的访问。进程间竞争资源、避免死锁、保证互斥访问共享资源。信号量(Semaphore)是一种用于。多进程或多线程间同步和互斥的机制。它是操作系统为了解决。而设计的一种同步工具。1.P操作(等待操作)该操作用于申请资源。该操作用于释放资源。
2025-01-07 22:14:07
336
原创 IO多路复用(select、poll、epoll总结)
注:select()函数中第2、3、4个参数都是fd_set类型,它表示一个文件描述符的集合,这个类型的数据有128个字节,也就是1024个标志位,和内核中文件描述符表中的文件描述符个数是一样的。当select()函数解除阻塞之后,被内核修改过的读集合通过参数传出,此时集合中只要标志位的值为1,那么它对应的文件描述符肯定是就绪的,我们就可以基于这个文件描述符和客户端建立新连接或者通信了。(2)readfds(读集合):文件描述符的集合, 内核只检测这个集合中文件描述符对应的读缓冲区。
2025-01-06 18:27:27
912
原创 网络编程的预备知识
众所周知的端口:1~1023(FTP:21,SSH:22,HTTP:80,HTTPS:469);广播IP: xxx.xxx.xxx255 255.255.255.255(全网广播)局域网IP:192.xxx.xxx.xxx 10.xxx.xxx.xxx。cp:点分形式的IP地址,32为整形(内部包含字节序的转换,默认是网络字节序的模式)组播IP: 224.xxx.xxx.xxx~239.xxx.xxx.xxx。如CPU访问的是字符串,视频说是单字节,则不存在大小端(
2024-11-27 09:10:20
862
原创 Linux文件IO详解
(1)因为read函数是n个字节的数据放入buf中,所以需要预先创建一个unsigned char buf[100]字符数组来存入数据;这是一种常见的做法,用于确保读取到的内容不会超出缓冲区的边界,并且可以安全地进行字符串操作。这是一种常见的做法,用于确保读取到的内容不会超出缓冲区的边界,并且可以安全地进行字符串操作。**标准IO:**fopen/fread/fwrite/fseek/fflush/fclose。(4)文件的身份三类别:文件拥有者(owner),所属组(group),其他人(others)
2024-08-28 08:57:30
524
原创 C++错误
在C++中,当使用括号调用构造函数时,你需要提供与构造函数参数类型完全匹配的参数。不过,这里的问题实际上是因为你的构造函数参数是一个指针,而C++标准并不支持直接传递字符串字面量给非。类包含一个指向动态分配内存的指针(如果你选择动态分配内存来存储字符串),你需要提供适当的析构函数、拷贝构造函数和赋值运算符来管理内存。,或者如果确实需要修改字符串内容,则应该使用动态分配的内存来存储字符串的副本。类型的参数(即使编译器可能允许这样的代码通过,但这不是好的编程实践)。类型的字面量(字符串常量)赋值给类的成员。
2024-06-04 23:07:22
508
原创 单片机垃圾桶项目
2.主函数中,定时器的初始化,传感器的初始化,一些状态的初始化(IO口高低电平的状态);1.对于两个定时器,定时器0和1初始化错误导致浪费大量时间;3.该项目中能利用模块化编程的思想;
2024-05-26 20:34:14
247
原创 定时器舵机转动角度
/当100次表示1s,重新让cnt从0计算,计算一下次的1s。if(cnt == 40)//爆表了100次,经过了1s。TL0 = 0x33;TH0 = 0xFE;//可有可无,稳妥起见,可以先初始化一下。//上电后让硬件稳定下。//初始化角度是0度0.5ms高电平。//90度 1.5ms高电平。// 1.配置定时器0工作模式 16位计时。sg90_con=1;// 2.给初值,定一个10ms出来。int cnt=0;//4.打开定时器0中断。// 3.开始计时。
2024-05-20 21:41:45
1133
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人