![](https://img-blog.csdnimg.cn/direct/d25203dcec2a49429da1e386262b6cfb.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux嵌入式学习笔记
文章平均质量分 92
一步一步学习Linux嵌入式
真果粒wrdms
Linux嵌入式学习者
展开
-
【并发程序设计】总篇集 Linux下 C语言 实现并发程序
进程概念 进程创建 进程常用命令 进程并发 父子进程 线程概念 线程创建 线程池 同步互斥 线程回收 条件变量 内存映射 进程间通信 有名管道 无名管道 信号机制 消息队列 信号灯(信号量)原创 2024-06-16 13:15:43 · 1104 阅读 · 0 评论 -
【网络编程开发】17.“自动云同步“项目实践
1. 保持云端数据和终端数据的一致2. 上传和下载3. 实时同步4. 定时同步5. 手动同步1. 实现TCP通信2. 使用TCP实现文件的上传和下载3. 实现整个目录下的文件的同步4. 实现项目框架5. 完成项目原创 2024-06-16 10:45:00 · 1557 阅读 · 1 评论 -
【网络编程开发】16.域名解析与http服务器实现原理
实现http的操作过程,服务端编写,html文件编写,域名解析,gethostbyname函数原创 2024-06-14 12:53:24 · 1154 阅读 · 0 评论 -
【网络编程开发】15.原始套接字
原始套接字(Raw Socket)是一种网络编程接口,它允许开发者访问底层的网络协议,如IP、ICMP、TCP和UDP等。链路层原始套接字 接收并处理包含TCP协议的IP数据报。原创 2024-06-13 09:23:33 · 590 阅读 · 0 评论 -
【网络编程开发】14.广播和组播
在 IP 多播数据报的目的地址需要写入多播组的标识符。多播组的标识符就是 IP 地址中的 D 类地址(多播地址)地址范围:224.0.0.0 ~ 239.255.255.255每一个 D 类地址标志一个多播组。多播地址只能用于目的地址,不能用于源地址。原创 2024-06-12 09:08:10 · 953 阅读 · 0 评论 -
【网络编程开发】13.套接字属性
获取流套接字和数据报套接字接收和发送的(内核)缓冲区大小,启用套接字的保活机制,获取当前套接字类型,判断套接字是否处于监听状态,选项的概念相当于属性,所以套接字选项也可说是**套接字属性**,SOL_SOCKET的常用选项,IPPROTO_IP级别的常用选项,原创 2024-06-11 10:23:33 · 490 阅读 · 0 评论 -
【网络编程开发】11.IO模型 12.IO多路复用
五种IO模型,IO多路复用的三种实现方法原创 2024-06-10 19:34:26 · 1023 阅读 · 1 评论 -
【网络编程开发】10.UNIX套接字域
UNIX域套接字是用于在同一台计算机上运行的进程之间进行通信的一种机制。它与传统基于TCP/IP协议栈的套接字不同,UNIX域套接字操作更为高效,因为它避免了网络层的开销,不涉及网络报头、检验和、顺序号等复杂的网络协议处理过程原创 2024-06-09 10:33:36 · 961 阅读 · 0 评论 -
【网络编程开发】8.TCP连接管理与UDP协议 9.IP协议与ethernet协议
三次握手,四次挥手,保活计时器,IP数据报首部的固定部分中的各字段,Ethernet协议原创 2024-06-08 15:55:35 · 1557 阅读 · 1 评论 -
【网络编程开发】7.TCP可靠传输的原理
TCP(Transmission Control Protocol),即传输控制协议,是网络通信中的一种重要协议,它提供了面向连接的、可靠的、全双工的数据流传输服务。可靠性是TCP协议的核心目标之一,其确保数据能够在复杂的网络环境下无差错、不丢失、不重复且按序到达目的地。原创 2024-06-07 16:17:52 · 1340 阅读 · 1 评论 -
【网络编程开发】6.UDP通信
UDP通信以其简单、高效的特点,在许多特定领域显示出其独特的优势。尽管它的不可靠性在某些情况下可能被视为缺点,但在那些更注重速度而不是完整性的应用中,UDP无疑是更好的选择。理解UDP的工作原理和适用场景对于网络编程和优化通信流程至关重要原创 2024-06-06 16:17:41 · 1118 阅读 · 0 评论 -
【网络编程开发】4.socket套接字及TCP的实现框架 5.TCP多进程并发
在现代计算机网络中,Socket套接字扮演着至关重要的角色。它们为应用程序提供了一种方式,通过这种方式,程序能够通过网络发送和接收数据包。原创 2024-06-05 20:57:10 · 1729 阅读 · 1 评论 -
【网络编程开发】1.网络结构 2.IP地址与端口号 3.字节序
IP地址是互联网协议(IP)提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。IP地址的定义与作用定义:IP地址是一个由数字组成的标识符,用于标识互联网上的设备。这个地址确保数据能够被正确地发送到目标设备。作用:IP地址使得终端设备之间的通信成为可能,无论这些设备的物理位置如何。它允许数据包在全球范围内的网络中路由和传输。IP地址的发展历程起源:随着互联网的发展,需要一个统一的地址系统来识别和定位连网的设备。因此,IP地址的概念应运而生。原创 2024-06-04 18:48:04 · 975 阅读 · 1 评论 -
【并发程序设计】总篇集 Linux下 C语言 实现并发程序设计
在Linux中,进程是操作系统分配资源和调度运行的基本单位。Linux中的进程有以下用处:进程在Linux系统中扮演着至关重要的角色,它们不仅提高了系统的资源利用率,还实现了多任务的并行处理,使得用户可以更加高效地进行工作。以下是一些关于Linux进程的重要概念:进程的内容通常包括以下几个主要部分:在Linux中,子进程是由父进程创建的进程。当一个进程被创建时,它会自动成为一个新进程的父进程,而新进程则成为子进程。子进程可以通过系统调用来创建。回收子进程的必要性:回收子进程不仅是为了维护操作系统资源的有效性原创 2024-06-03 17:02:17 · 1522 阅读 · 1 评论 -
【并发程序设计】15.信号灯(信号量)
在Linux系统中,信号灯作为一种进程间通信(IPC)的方式,与其他如管道、FIFO或共享内存等IPC方式不同,信号灯主要用于同步或互斥控制,以确保多个进程之间能够协调地访问共享资源。信号灯可以看作是内存中的一个标志,原创 2024-06-02 21:37:54 · 886 阅读 · 2 评论 -
【并发程序设计】14.消息队列
消息队列(Message Queue)一种通信机制,用于在分布式系统中传递和管理消息的队列型数据结构原创 2024-06-02 21:29:23 · 593 阅读 · 0 评论 -
【并发程序设计】13.信号机制
信号机制是操作系统中的一个重要概念,它提供了一种异步的通知机制,用于在进程之间传递消息。信号可以被看作是一种软中断,它们可以在任何时间被发送给一个进程,以通知该进程发生了某个特定的事件。信号的本质是在软件层次上模拟硬件中断的行为,但它完全由软件控制,因此被称为“软中断”。在Linux系统中,信号机制是通过内核实现的。内核负责管理信号的发送和接收,并通过软中断的方式通知进程。进程可以通过系统调用来设置信号处理函数,从而定义对不同信号的响应方式。原创 2024-06-01 09:47:22 · 1307 阅读 · 0 评论 -
【并发程序设计】12.内存映射
内存映射,System V共享内存,匿名映射,使一个磁盘文件与内存中的一个缓冲区相映射,进程可以像访问普通内存一样对文件进行访问,不必再调用read,write,更加高效。原创 2024-05-31 20:29:43 · 768 阅读 · 0 评论 -
【并发程序设计】11.进程间通信
进程和进程之间交换信息。有名管道、无名管道原创 2024-05-29 09:15:46 · 1088 阅读 · 0 评论 -
【并发程序设计】10.线程池
通俗的讲就是一个线程的池子,可以循环的完成任务的一组线程集合我们平时创建一个线程,完成某一个任务,等待线程的退出。但当需要创建大量的线程时,假设T1为创建线程时间,T2为在线程任务执行时间,T3为线程销毁时间,当 T1+T3 > T2,这时候就不划算了,使用线程池可以降低频繁创建和销毁线程所带来的开销,任务处理时间比较短的时候这个好处非常显著。线程池的。原创 2024-05-28 10:05:48 · 256 阅读 · 0 评论 -
【并发程序设计】9.条件变量使用
条件变量是一种线程同步机制,允许一个或多个线程等待直到另一个线程发出信号通知条件已满足。原创 2024-05-26 15:10:25 · 627 阅读 · 1 评论 -
【并发程序设计】8.线程的同步和互斥
临界资源: 一次只允许一个任务(进程、线程)访问的共享资源临界区:访问临界资源的程序互斥机制:mutex互斥锁,任务访问临界资源前申请锁,访问完后释放锁。原创 2024-05-25 20:37:38 · 1110 阅读 · 0 评论 -
【并发程序设计】7.线程回收
线程内的 return 可以结束线程,也可以给pthread_join返回值,但不能触发pthread_cleanup_push里面的回调函数,所以我们结束线程尽量使用pthread_exit退出线程。:指定线程的取消类型,可以是PTHREAD_CANCEL_DEFERRED(等到取消点才取消)、PTHREAD_CANCEL_ASYNCHRONOUS(目标线程会立即取消):指定线程的取消状态,可以是PTHREAD_CANCEL_ENABLE或PTHREAD_CANCEL_DISABLE。原创 2024-05-16 16:26:39 · 366 阅读 · 0 评论 -
【并发程序设计】6.线程创建
首先,,每个进程拥有自己的地址空间,而。这意味着不同进程之间的资源如内存堆、栈是不能直接共享的,而同一进程内的多个线程可以直接访问这些共享资源。其次,。因为进程有独立的地址空间,所以操作系统在创建或销毁进程时需要较大的系统资源开销。而线程作为调度的基本单位,其创建和上下文切换的开销要小得多,这也是为什么线程被称为轻量级进程的原因。最后,。进程间则通常需要借助于进程间通信(IPC)机制,如管道、消息队列、共享内存等来完成数据交换。原创 2024-05-13 10:47:49 · 1039 阅读 · 0 评论 -
【并发程序设计】5.守护进程
守护进程又叫精灵进程(Daemon Process),它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。始终在后台运行,独立于任何终端,周期性的执行某种任务或等待处理特定事件。它是个特殊的孤儿进程,这种进程脱离终端,为什么要脱离终端呢?之所以脱离于终端是为了避免进程被任何终端所产生的信息所打断,其在执行过程中的信息也不在任何终端上显示。原创 2024-05-12 21:29:45 · 971 阅读 · 0 评论 -
【并发程序设计】4. exec函数族
exec函数族是一组用于。exec函数族主要用于在当前进程内部执行一个新的程序,而不会创建新的进程。原创 2024-05-12 16:49:51 · 611 阅读 · 0 评论 -
【并发程序设计】3.子进程
在Linux中,子进程是由父进程创建的进程。当一个进程被创建时,它会自动成为一个新进程的父进程,而新进程则成为子进程。子进程可以通过fork()系统调用来创建。原创 2024-05-11 19:04:39 · 1174 阅读 · 2 评论 -
【并发程序设计】2.进程常用命令
关于Linux进程管理的命令和参数的详细解释。这些命令包括:ps:查看系统进程快照,可以显示所有终端下的进程信息,指定用户的进程信息,没有控制终端的进程信息,所有进程信息,以及完整格式的进程信息。top:实时显示系统中各个进程的资源占用情况,包括CPU、内存等。可以设置刷新间隔时间,监控指定进程ID的进程,监控指定用户的进程,以及设置刷新次数。pstree:查看进程树,显示进程的层次结构。nice:启动进程时调整进程的优先级,使得CPU资源分配更加合理。可以设置进程的优先级,范围为-20(最原创 2024-05-11 09:17:10 · 1038 阅读 · 1 评论 -
【并发程序设计】1.进程概念
在Linux中,进程是。进程在Linux系统中扮演着至关重要的角色,它们不仅提高了系统的资源利用率,还实现了多任务的并行处理,使得用户可以更加高效地进行工作。pstopkill。原创 2024-05-10 20:59:30 · 589 阅读 · 0 评论 -
11.并发程序设计
并发程序 子进程 exec族函数 守护进程 GDB调试多进程程序 线程创建和传参原创 2024-05-02 15:42:22 · 1795 阅读 · 1 评论 -
10.IO进程 文件IO
学习编写Linux应用程序 文件打开和关闭 标准输入输出 流的刷新 流的定位 格式化输入输出 标准IO 文件IO 目录 文件权限与属性 静态库与动态库原创 2024-04-24 19:12:16 · 888 阅读 · 2 评论