随笔分类 -  Linux

摘要:。。。 阅读全文
posted @ 2025-04-27 14:25 [BORUTO] 阅读(27) 评论(0) 推荐(0)
摘要:。。。 阅读全文
posted @ 2025-04-27 14:25 [BORUTO] 阅读(12) 评论(0) 推荐(0)
摘要:项目功能:(1)能接收客户端的GET请求; (2)能够解析客户端的请求报文,根据客户端要求找到相应的资源; (2)能够回复http应答报文; (3)能够读取服务器中存储的文件,并返回给请求客户端,实现对外发布静态资源; (4)使用I/O复用来提高处理请求的并发度; (5)服务器端支持错误处理,如要访 阅读全文
posted @ 2025-01-06 10:02 [BORUTO] 阅读(581) 评论(0) 推荐(0)
摘要:① TCP是个流协议,它存在粘包问题 TCP是一个基于字节流的传输服务,"流"意味着TCP所传输的数据是没有边界的。这不同于UDP提供基于消息的传输服务,其传输的数据是有边界的。TCP的发送方无法保证对等方每次接收到的是一个完整的数据包。主机A向主机B发送两个数据包,主机B的接收情况可能是 产生粘包 阅读全文
posted @ 2024-05-31 15:11 [BORUTO] 阅读(218) 评论(0) 推荐(0)
摘要:报"Address already in use",如下图所示: 错误原因:某程序正在使用端口。(这里我使用的是端口“8888”) 可以通过命令查看所有正在使用的端口: netstat -tunllp 解决方案1 1.找到占用该端口的进程号 使用命令: sudo netstat -anp|grep 阅读全文
posted @ 2024-03-15 15:30 [BORUTO] 阅读(3131) 评论(0) 推荐(0)
摘要:1. 接口介绍 本文就详细讲解如何使用MySql的C语言API进行数据库编程。 API,全称Application Programming Interfaces,即应用程序编程接口,我们可以调用这些接口,执行API函数提供的功能。 MySql C语言API就是用C语言编写的MySql编程接口,使用这 阅读全文
posted @ 2023-06-29 09:25 [BORUTO] 阅读(80) 评论(0) 推荐(0)
摘要:运行环境: Ubuntu20.04 ,虚拟机VMware Mysql 8.0 API libmysqlclient-dev MysqlServer version: 8.0.33-0ubuntu0.20.04.2 (Ubuntu) 注意:执行以下步骤需要提前安装好mysql之后再操作,如果没有安装好 阅读全文
posted @ 2023-06-28 15:34 [BORUTO] 阅读(851) 评论(0) 推荐(0)
摘要:1. Nginx简介 Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx 阅读全文
posted @ 2023-06-15 14:57 [BORUTO] 阅读(49) 评论(0) 推荐(0)
摘要:1. POSIX异步IO(AIO) BSD对不同的设备文件进行异步IO方法不一样, 如终端设备是产生SIGIO信号, 仅支持带外数据的设备才能产生SIGURG信号.POSIX对不同类型文件进行异步IO提供一套一致的方法, SUSv4中, 这些接口被移到了基本部分中, 所以现在所有的平台都被要求支持这 阅读全文
posted @ 2023-05-08 11:35 [BORUTO] 阅读(333) 评论(0) 推荐(0)
摘要:1. 线程概述 线程是轻量级的进程(LWP:light weight process),在 Linux 环境下线程的本质仍是进程。在计算机上运行的程序是一组指令及指令参数的组合,指令按照既定的逻辑控制计算机运行。操作系统会以进程为单位,分配系统资源,可以这样理解,进程是资源分配的最小单位,线程是操作 阅读全文
posted @ 2023-01-08 10:35 [BORUTO] 阅读(76) 评论(0) 推荐(0)
摘要:TCP的三次握手和四次挥手实质就是TCP通信的连接和断开。 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。 四次挥手:即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包 阅读全文
posted @ 2023-01-08 10:34 [BORUTO] 阅读(43) 评论(0) 推荐(0)
摘要:1. 僵尸进程 在一个启动的进程中创建子进程,这时候就有了父子两个进程,父进程正常运行,子进程先与父进程结束,子进程无法释放自己的 PCB 资源,需要父进程来做这个件事儿,但是如果父进程也不管,这时候子进程就变成了僵尸进程。 僵尸进程不能将它看成是一个正常的进程,这个进程已经死亡了,用户区资源已经被 阅读全文
posted @ 2023-01-08 10:32 [BORUTO] 阅读(124) 评论(0) 推荐(0)
摘要:一、概述 进程间通信(interprocess communication,简称 IPC)指两个进程之间的通信。系统中的每一个进程都有各自的地址空间,并且相互独立、隔离,每个进程都处于自己的地址空间中。所以同一个进程的不同模块譬如不同的函数)之间进行通信都是很简单的,譬如使用全局变量等。但是,两个不 阅读全文
posted @ 2023-01-08 10:31 [BORUTO] 阅读(189) 评论(0) 推荐(0)
摘要:1. 什么是消息队列? 消息队列(Message Queue,简称MQ)是由内核管理的消息链接表,由消息队列标识符标识,标识符简称队列ID。消息队列提供了进程之间单向传送数据的方法,每个消息包含有一个正的长整型类型的数据段、一个非负的长度以及实际数据字节数(对应于长度),消息队列总字节数是有上限的, 阅读全文
posted @ 2023-01-08 10:30 [BORUTO] 阅读(306) 评论(0) 推荐(0)
摘要:共享内存不同于内存映射区,它不属于任何进程,并且不受进程生命周期的影响。通过调用 Linux 提供的系统函数就可得到这块共享内存。使用之前需要让进程和共享内存进行关联,得到共享内存的起始地址之后就可以直接进行读写操作了,进程也可以和这块共享内存解除关联,解除关联之后就不能操作这块共享内存了。在所有进 阅读全文
posted @ 2023-01-08 10:29 [BORUTO] 阅读(319) 评论(0) 推荐(0)
摘要:1. 信号概述 Linux 中的信号是一种消息处理机制,它本质上是一个整数,不同的信号对应不同的值,由于信号的结构简单所以天生不能携带很大的信息量,但是信号在系统中的优先级是非常高的。 在 Linux 中的很多常规操作中都会有相关的信号产生,先从我们最熟悉的场景说起: 通过键盘操作产生了信号:用户按 阅读全文
posted @ 2023-01-06 14:49 [BORUTO] 阅读(102) 评论(0) 推荐(0)
摘要:1. 管道 管道的是进程间通信(IPC - InterProcess Communication)的一种方式,管道的本质其实就是内核中的一块内存 (或者叫内核缓冲区),这块缓冲区中的数据存储在一个环形队列中,因为管道在内核里边,因此我们不能直接对其进行任何操作。 因为管道数据是通过队列来维护的,我们 阅读全文
posted @ 2023-01-06 14:48 [BORUTO] 阅读(169) 评论(0) 推荐(0)
摘要:1. 常见的通信方式 管道(pipe):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 消息队列(MessageQueue):消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载 阅读全文
posted @ 2023-01-06 14:47 [BORUTO] 阅读(647) 评论(0) 推荐(1)
摘要:1. 进程概述 从严格意义上来讲,程序和进程是两个不同的概念,他们的状态,占用的系统资源都是不同的。 程序:就是磁盘上的可执行文件文件,并且只占用磁盘上的空间,是一个静态的概念。 进程:被执行之后的程序叫做进程,不占用磁盘空间,需要消耗系统的内存,CPU资源,每个运行的进程的都对应一个属于自己的虚拟 阅读全文
posted @ 2023-01-06 11:50 [BORUTO] 阅读(111) 评论(0) 推荐(0)
摘要:1. 概述 把硬盘数据搬到内存中去操作的方式被称为文件映射虚拟内存,由于内存访问的特殊性,数据到了内存后可提高访问和操作的速率。 2. 函数介绍 mmap()函数功能:将物理内存映射为虚拟内存,为了提高效率 void* mmap(void *start, size_t length, int pro 阅读全文
posted @ 2023-01-06 11:47 [BORUTO] 阅读(172) 评论(0) 推荐(0)