摘要: 7.2.1 套接字(socket)概述 7.2.2 地址及顺序处理 7.2.3 套接字编程 套接字定义 在Linux中的网络编程是通过socket接口来进行的。套接字(socket)是一种特殊的I/O接口,它也是一种文件描述符。socket是一种常用的进程之间通信机制,通过它不仅能实现本地机器上的进 阅读全文
posted @ 2022-12-25 21:32 cnetsa 阅读(21) 评论(0) 推荐(0)
摘要: 7.1.1 TCP/IP的分层模型7.1.2 TCP/IP的分层模型特点7.1.3 TCP/IP核心协议 OSI协议参考模型,它是基于国际标准化组织(ISO)的建议发展起来的,它分为7个层次:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。 这个7层的协议模型虽然规定得非常细致和完善,但 阅读全文
posted @ 2022-12-25 21:22 cnetsa 阅读(87) 评论(0) 推荐(0)
摘要: 所谓线程私有数据是除局部数据和全局数据的第三类数据,这个概念是随着线程的诞生而提出来的。 假设你的一个线程里面嵌套调用了很多函数,而你又需要在这些函数之间使用一个公共的变量,如果在单线程环境中,我们是不是声明一个全局变量就解决问题了呢? 但是我们想使这个“公共变量”只属于我们当前这个实例线程,其他线 阅读全文
posted @ 2022-12-25 21:21 cnetsa 阅读(56) 评论(0) 推荐(0)
摘要: pthread_create()函数的第二个参数(pthread_attr_t *attr)表示线程的属性。 如果该值设为NULL,就是采用默认属性,线程的多项属性都是可以更改的。 这些属性主要包括绑定属性、分离属性、堆栈地址、堆栈大小以及优先级。其中系统默认的属性为非绑定、非分离、缺省1M的堆栈以 阅读全文
posted @ 2022-12-25 21:18 cnetsa 阅读(41) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-12-25 21:08 cnetsa 阅读(17) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-12-25 21:04 cnetsa 阅读(20) 评论(0) 推荐(0)
摘要: 消息队列就是一些消息的列表。 用户可以在消息队列中添加消息和读取消息等。从这点上看,消息队列具有一定的FIFO特性,但是它可以实现消息的随机查询,比FIFO具有更大的优势。同时,这些消息又是存在于内核中的,由“队列ID”来标识。 阅读全文
posted @ 2022-12-25 21:02 cnetsa 阅读(24) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-12-25 20:59 cnetsa 阅读(55) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-12-25 20:57 cnetsa 阅读(26) 评论(0) 推荐(0)
摘要: 信号概述 信号是在软件层次上对中断机制的一种模拟,是一种异步通信方式 信号可以直接进行用户空间进程和内核进程之间的交互,内核进程也可以利用它来通知用户空间进程发生了哪些系统事件。它可以在任何时候发给某一进程,而无需知道该进程的状态。 如果该进程当前并未处于执行态,则该信号就由内核保存起来,直到该进程 阅读全文
posted @ 2022-12-25 20:52 cnetsa 阅读(79) 评论(0) 推荐(0)
摘要: 管道简介Linux的管道主要包括两种:无名管道和有名管道。无名管道特点 它只能用于具有亲缘关系的进程之间的通信(也就是父子进程或者兄弟进程之间)。 它是一个半双工的通信模式,具有固定的读端和写端。 管道也可以看成是一种特殊的文件,对于它的读写也可以使用普通的read()、write()等函数。但是它 阅读全文
posted @ 2022-12-25 20:51 cnetsa 阅读(86) 评论(0) 推荐(0)
摘要: Linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的 集合System V IPC(贝尔实验室)和socket的进程间通信机制(BSD)的优势 Unix进程间通信(IPC)方式包括管道、FIFO以及信号。 System V进程间通信(IPC)包括System V消息队列、Sy 阅读全文
posted @ 2022-12-25 20:46 cnetsa 阅读(51) 评论(0) 推荐(0)
摘要: 守护进程,也就是通常所说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件 守护进程常常在系统引导装入时启动,在系统关闭时终止 Linux系统有很多守护进程,大多数服务都是用守护进程实现的 在Linux中,每 阅读全文
posted @ 2022-12-25 20:27 cnetsa 阅读(618) 评论(0) 推荐(0)
摘要: fork() fork()函数用于从已存在的进程中创建一个新进程。 新进程称为子进程,而原进程称为父进程。 使用fork()函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地址空间,包括进程上下文、代码段、进程堆栈、内存信息、打开的文件描述符、信号控制设定、进程优先级、进程组号、当 阅读全文
posted @ 2022-12-25 20:18 cnetsa 阅读(21) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-12-25 20:00 cnetsa 阅读(22) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-12-25 19:59 cnetsa 阅读(22) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2022-12-25 19:55 cnetsa 阅读(43) 评论(0) 推荐(0)
摘要: 标准I/O提供流缓冲的目的是尽可能减少使用read()和write()等系统调用的数量。标准I/O提供了3种类型的缓冲存储。 全缓冲:在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。对于存放在磁盘上的文件通常是由标准I/O库实施全缓冲的。标准I/O尽量多读写文件到缓冲区,当缓冲区已满或手 阅读全文
posted @ 2022-12-25 19:53 cnetsa 阅读(37) 评论(0) 推荐(0)
摘要: I/O处理模型 阻塞I/O模型 非阻塞模型 I/O多路转接模型 信号驱动I/O模型 异步I/O模型select和poll的I/O转接模型是处理I/O复用的一个高效的方法 阅读全文
posted @ 2022-12-25 19:51 cnetsa 阅读(30) 评论(0) 推荐(0)
摘要: 文件锁包括建议性锁和强制性锁。 建议性锁要求每个上锁文件的进程都要检查是否有锁存在,并且尊重已有的锁。 在一般情况下,内核和系统都不使用建议性锁。强制性锁是由内核执行的锁,当一个文件被上锁进行写入操作的时候,内核将阻止其他任何文件对其进行读写操作。采用强制性锁对性能的影响很大,每次读写操作都必须检查 阅读全文
posted @ 2022-12-25 19:42 cnetsa 阅读(226) 评论(0) 推荐(0)