终端IO:终端IO属性与控制【Unix编程】
2025-08-30
struct termios 是用于控制终端 I/O(输入输出)行为的一个结构体,用于设置和获取终端设备的参数,例如输入模式、输出模式、控制模式、局部模式、特殊字符等。
2549 字
|
13 分钟
网络套接字:流式套接字&TCP【Unix编程】
2025-08-21
流式套接字(Stream Socket)用于在网络应用程序之间进行可靠的、基于连接的通信。它通常使用TCP(Transmission Control Protocol)作为传输协议,因此提供了数据传输的可靠性和顺序保证。在流式套接字中,数据以字节流的形式发送和接收,双方可以确定连接的建立和断开。
1587 字
|
8 分钟
网络套接字:报式套接字&UDP【Unix编程】
2025-08-21
报式套接字(Datagram Socket)是一种无连接的网络通信接口,使用UDP协议传输数据,数据以独立的数据包形式发送,不保证数据的顺序和可靠性,但具有较低的延迟和开销。
4058 字
|
20 分钟
进程间通信:XSI【Unix编程】
2025-08-21
XSI IPC(X/Open System Interface Inter-Process Communication)是Unix系统中一套传统的进程间通信机制,包括消息队列(Message Queues)、信号量(Semaphores) 和共享内存(Shared Memory) 三种核心组件。这套IPC机制遵循X/Open标准,提供了进程间数据交换和同步的标准化方法,其中消息队列允许进程通过发送和接收消息进行通信,信号量用于进程间的同步和资源访问控制,而共享内存则允许多个进程共享同一块内存区域以实现高效的数据共享。XSI IPC通过系统调用接口(如msgget、semget、shmget等)进行创建和管理。
6258 字
|
31 分钟
网络套接字:套接字基础【Unix编程】
2025-08-20
字节序(Endianness)是指多字节数据在内存中的存储顺序, 字节序是处理器架构特性,决定了多字节数据类型内部字节的排列顺序。
2051 字
|
10 分钟
进程间通信:管道【Unix编程】
2025-08-20
管道是Unix/Linux系统中最基础的进程间通信机制,分为匿名管道和命名管道两种类型,都具有自同步和单工的特点。匿名管道通过pipe()系统调用创建,只能用于有血缘关系的进程间通信,如父子进程或兄弟进程,它创建一个单向的单工数据传输通道;命名管道(FIFO)通过mkfifo()创建,以特殊文件形式存在于文件系统中,可以用于任意进程间的通信。两种管道都具有天然的自同步特性:当管道缓冲区满时,写操作会自动阻塞直到有空间可用;当管道为空时,读操作会自动阻塞直到有数据可读,这种阻塞机制无需额外的同步代码即可实现发送方和接收方进程的自动协调。管道的数据流动是单向的,发送方只能写入数据,接收方只能读取数据,体现了典型的单工通信特点,但管道容量有限且不支持随机访问。
1432 字
|
7 分钟
高级IO:存储映射IO【Unix编程】
2025-08-18
作用mmap用于在调用进程的虚拟地址空间中创建一个新的映射。这个映射可以是文件或设备的映射,也可以是匿名映射。通过mmap,可以将文件或设备的内容映射到内存中,从而可以通过直接访问内存来读取或写入文件内容。
1071 字
|
5 分钟
高级IO:IO多路转接【Unix编程】
2025-08-16
IO多路转接(I/O Multiplexing),用于同时监控多个文件描述符的行为,当其中任何一个文件描述符就绪时进行处理。
在传统的阻塞I/O模型中,一个I/O操作(如读取数据)会导致程序阻塞,直到操作完成。这种方式在处理多个连接时效率较低,因为程序需要为每个连接单独分配一个线程或进程。
IO多路转接通可以同时监控多个文件描述符。当其中的任何一个文件描述符变为“就绪”状态,相应的I/O操作就会被触发,这样程序就可以在一个或少量的线程中处理大量的并发任务。
2757 字
|
14 分钟
鲁公网安备37011302000501号