![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux 服务器
文章平均质量分 82
For Nine
这个作者很懒,什么都没留下…
展开
-
记一个编写宏时的错误
编写宏定义时,一定要注意不要忘了写作用域。原创 2022-06-04 11:29:42 · 94 阅读 · 0 评论 -
syscall()
syscall函数转载 2022-06-03 22:19:25 · 3789 阅读 · 0 评论 -
Linux 线程———详解
1、线程的概念 和 基础知识1.1 什么是线程线程可看作轻量级进程(light weight process),Linux的线程本质仍然是进程。Linux先有进程后有线程,当创建了一个进程时,系统给他分配一段4G的虚拟内存,并在其内生成进程的PCB,当他调用相关函数创建一个线程时,会为新的线程生成一个PCB也存放在当前的4G虚拟内存中,而原来的进程也沦为一个线程。所以,进程和线程的区别是:是否共享地址空间。 进程总是独享4G的虚拟内存,而多个线程共享一段4G的空间。线程是CPU调度的最小单位,也是原创 2022-05-12 21:50:18 · 4163 阅读 · 0 评论 -
Linux高级进程编程———在任意两个进程间传递文件描述符:使用 sendmsg 和 recvmsg 实现
/* 本程序实现子进程打开一个文件描述符,然后将其传递给父进程,父进程通过其获得文件内容 */#include<sys/socket.h>#include<fcntl.h>#include<stdio.h>#include<unistd.h>#include<stdlib.h>#include<assert.h>#include<string.h>static const int CONTROL_LEN =原创 2022-05-08 08:48:26 · 2740 阅读 · 3 评论 -
信号 ——《Linux高性能服务器编程》第10章——读书笔记
1、概述2、select系统效用2.1 select API#include<sys/select.h>int select(int nfds, fd_set* readfds, fd_set* writefds, fd_set* exceptfds, struct timeval* timeout);参数说明:nfds参数指定被监听的文件描述符总数。通常被设置为select监听的文件描述符中的最大值 + 1,因为文件描述符是从0开始计数的。readfds 、writefds原创 2022-04-26 13:53:27 · 1655 阅读 · 0 评论 -
红黑树(rbtree)、以及epoll的实现原理
epoll的实现原理,查看此篇博客先明确:在红黑树中,叶子节点指的是,没有子节点的节点的两个空节点,或者只有一个子节点的节点的另外一个空儿子,如下图所示:1、定义任意一棵红黑树,都要满足下列5个条件:① 所有节点,要么是红色,要么是黑色② 根节点是黑色③ 所有叶子节点都是黑色(这其实算是一条定义,不过这5条描述的本来就是定义😂)本条换个说法:从任意叶子节点到根的所有路径上不能有两个连续的红色节点④ 每个红色结点的两个子节点都是黑色⑤ 从根到任意一个叶子节点的路径中,包含的黑色.转载 2022-04-20 21:25:03 · 1556 阅读 · 1 评论 -
高性能服务器程序框架——《Linux高性能服务器编程》第8章——读书笔记
1、概述2、服务器模型2.1 C/S模型客户端 / 服务器模型。服务器监听客户的服务请求,并利用 I / O复用技术处理请求。C/S模型非常适合资源相对集中的场合,并且它的实现简单,但其缺点也很明显:服务器是通信的中心,当访问量过大时,可能所有客户都将得到很慢的响应。下面讨论的P2P模型解决了这个问题。2.2 P2P模型点对点模型。网络上的每个主机,既是服务的享受者,又是服务的提供者。云计算机群可以看作P2P模型的一个典范。P2P也有缺点:当用户之间传输的请求过多时,网络的负载加重。而且,主原创 2022-04-19 09:04:13 · 199 阅读 · 0 评论 -
Linux 服务器程序规范——《Linux高性能服务器编程》第7章——读书笔记
1、概述2、日志2.1 Linux 系统日志原创 2022-04-16 20:53:29 · 909 阅读 · 0 评论 -
Linux 网络编程基础 API——《Linux高性能服务器编程》读书笔记
1、socket地址API1.1 主机字节序 和 网络字节序主机字节序:现代PC大多采用小端字节序,因此小端字节序又被称为主机字节序。大端字节序和小端字节序会产生一个问题,当格式化的数据在两台使用不同字节序的主机之间直接传递时,接收端必然会进行错误的解释。解决办法是:发送端总把要发送的数据转换成大端字节序,再发送,而接收端总采用大端字节序接收,并根据需要转换成自己使用的字节序。因此,大端字节序也称为网络字节序。Linux提供了4个函数来完成主机字节序 和 网络字节序之间的转换。#includ原创 2022-04-11 12:12:11 · 1061 阅读 · 0 评论 -
使用tcpdump观察DNS的通信过程
1、实验概述在Ubuntu上用host命令通过DNS协议查询www.baidu.com的IP地址。同时,使用tcpdump抓取数据包,并观察结果。2、实验过程首先,在一个终端上输入如下命令:sudo tcpdump -nt -s 500 port domain-s 500表示每个数据包的大小为500字节使用port domain表示只抓取使用domain(域名)服务的数据包,即DNS查询和应答报文。然后再开一个新的终端,输入如下命令:host -t A www.baidu.com原创 2022-04-07 10:43:05 · 2345 阅读 · 0 评论