自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

原创 MySQL增删改查(CRUD)操作详解与实战指南

避免全列查询:使用SELECT *可能导致性能问题,明确指定所需字段。谨慎更新/删除:操作前务必确认WHERE条件,可先通过SELECT验证。索引优化:频繁查询的字段建议添加索引,但需权衡写入性能。事务处理:批量操作时使用事务,确保数据一致性。通过本文的学习,相信你已经掌握了MySQL的核心操作。建议结合实战题目(如LeetCode SQL题库)进一步巩固技能,提升解决复杂问题的能力。

2025-03-31 22:07:18 1031

原创 MySQL表的约束详解:保障数据完整性与业务逻辑

NULL:允许字段为空(默认值)。NOT NULL:字段必须有值,禁止为空。作用:避免空值参与运算时产生意外结果,强制业务必填字段。因为name设置了不允许为空,所以在让name为空时插入被约束;age默认值就是空,在缺省参数时,默认是空;为字段设置默认值,当插入数据未指定该字段时,自动填充默认值。注意:默认值字段允许为NULL时,未赋值会填充默认值;若同时设置NOT NULL,则必须显式赋值或依赖默认值。数据在插入的时候不给该字段赋值,就使用默认值。

2025-03-18 14:54:56 729

原创 MySQL——数据类型

通过理解各类型的特性及适用场景,开发者可以优化存储结构,提升系统性能,减少潜在zhzh。我们知道每个汉字占3个字节,那么在c语言中,6个字节就只能存2个汉字,但在mysql当中一个汉字就是一个char。char(L): 固定长度字符串,L是可以存储的长度,单位为字符,最大长度值可以为255。UTF-8下,VARCHAR最大长度为21844字符(每个字符占3字节)。GBK下,最大为32766字符(每个字符占2字节)。:4字节,精度约7位,适用一般科学计算。:8字节,精度约15位,适合高精度需求。

2025-03-17 23:11:39 1077

原创 MySQL库和表的操作详解:从创建库到表的管理全面指南

建议结合实践加深理解,例如在本地环境中模拟不同校验规则的查询场景,或尝试备份恢复真实项目数据。通过本文,您已掌握MySQL表的核心操作,从基础设计到高级优化均有覆盖。建议结合项目需求实践,例如设计一个用户管理系统,练习表关联、事务处理等复杂场景。:避免过度索引,优先为高频查询字段和 WHERE 条件列建索引。备份文件本质是SQL脚本,包含建库、建表及插入数据的语句。:监控当前数据库连接,识别异常请求(如未知用户连接)。:插入的数据在关联表中不存在。:表字符集与客户端不匹配。:删除数据或事务回滚导致。

2025-03-12 20:01:57 888

原创 MySQL——基础知识

数据库特点MySQL最流行的开源数据库,并发性能好,适合电商、论坛等场景。Oracle功能强大,适合复杂业务逻辑,但成本高。SQL Server微软生态首选,适合中大型项目。SQLite轻量级嵌入式数据库,资源占用极低。PostgreSQL开源且功能丰富,支持复杂查询和自定义类型。

2025-03-12 15:56:31 655

原创 C++11——智能指针和function库

智能指针所有权拷贝/赋值性能开销适用场景unique_ptr独占只能移动无单一所有权,明确生命周期shared_ptr共享允许拷贝引用计数共享所有权,不确定生命周期weak_ptr无(仅观察)允许拷贝无计数解决循环引用,观察资源。

2025-03-02 17:48:45 841

原创 Linux——高级IO(select后续poll,epoll)

→ DMA 到内核缓冲区 → 协议栈解析 → 填充 Socket 接收缓冲区。

2025-02-26 12:54:03 852

原创 Linux——高级IO

同步需要。

2025-02-25 21:40:03 808

原创 网络ip协议

打破传统分类限制,灵活分配地址。禁止分片,若路由器发现数据包超过MTU,返回ICMP“需要分片”错误,发送方调整数据包大小。可容纳约1677万台主机(2^24 - 2),但仅有126个A类网络(如政府、大型企业)。就是当主机和路由器断开连接时,路由器将主机的ip回收,在下次连接网络时,重新获得新的IP。早期用于QoS(服务质量),如优先级、延迟、吞吐量等(实际使用较少)。用于自治系统(AS)之间的路由,基于策略选择路径(如运营商级路由)。用于扩展功能,如安全选项、时间戳、松散源路由等(实际极少使用)。

2025-02-19 19:27:58 603

原创 tcp首尾及总结

TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。它主要负责在应用程序之间提供可靠的数据传输服务,确保数据在传输过程中不丢失、不重复且按序到达。

2025-02-18 14:42:40 956

原创 tcp传输协议机制

客户端发送 SYN 报文,携带自己的初始序列号(ISN)。目的是告诉服务器:“我想和你建立连接,我的序列号从 ISN 开始。

2025-02-12 20:13:22 940

原创 C++11语法及库详解

C++11 引入了许多现代编程语言的特性,极大地提升了 C++ 的表达能力和开发效率。掌握这些特性可以帮助开发者编写更高效、更安全的代码。C++11 的标准库扩展极大地增强了语言的功能性,提供了更现代化的工具和组件。这些库组件与语言特性相结合,使得 C++11 成为一个更强大、更高效的编程语言版本。

2025-02-11 21:06:40 1052

原创 TCP协议报头及各个字段的作用

TCP报头通过精细设计的字段协同工作,实现了可靠传输、流量控制、拥塞控制及连接管理。理解各字段的作用是掌握TCP协议运作机制的基础,尤其在网络调试和优化中至关重要。

2025-02-11 18:50:27 532

原创 Linux——网络(https)

对称加密:加密和解密使用相同密钥,速度快但密钥管理困难。非对称加密:使用一对密钥(公钥和私钥),公钥公开,私钥保密,主要用于密钥交换和数字签名。数字证书:由权威机构颁发,用于证明公钥持有者身份的文件。

2025-02-10 00:30:55 1268

原创 Linux——网络(http协议)

也就是我们数据是长链接还是短链接,当我们打开一个有100张照片页面时,长链接是我们一次性将照片和index页面加载过去;我们90%的方法都是GET和POST方法,其中GET方法占80%,那么这两个协议有什么区别呢?这里我们用的是post的方法,然后代码运行起来发现是在空行下面以正文的方式显示出来的;我们发现它是在url当中的,这就是两个方法的不同之处;返回的数据(如 HTML、JSON、图片等)。:资源的唯一标识符(用于缓存验证)。:请求正文的 MIME 类型(如。:通常是 URL 的路径(如。

2025-02-09 01:48:27 696

原创 Linux——网络(http)

是Web通信的基石,理解其无状态特性至关重要。

2025-02-07 02:02:41 965

原创 linux——网络计算机{序列化及反序列化(JSON)(ifdef的用法)}

宏通常在文件顶部定义,或通过编译器选项定义(如。

2025-02-06 00:47:48 821

原创 linux——网络(服务器的永久不挂——守护进程)

Linux——网络(tcp)-优快云博客1、fork()功能:用于创建一个新的进程,这个新进程是调用进程(父进程)的副本,被称为子进程。在调用fork()之后,父进程和子进程会从fork()调用处开始继续执行,通过fork()的返回值来区分是父进程还是子进程。返回值在父进程中,返回子进程的进程 ID(PID),是一个正整数。在子进程中,返回 0。如果出错,返回 -1。示例代码return 1;// 子进程} else {// 父进程return 0;

2025-02-05 00:28:15 16793

原创 Linux——网络(tcp)

Linux——网络基础(1)-优快云博客Linux——网络(udp)-优快云博客TCP协议概述:简要介绍TCP协议的基本特性,包括连接建立、数据传输、流量控制、拥塞控制等。Linux网络编程基础:介绍Linux下的Socket编程接口,以及如何使用这些接口进行TCP通信。TCP服务器与客户端的实现:通过实际的代码示例,展示如何编写一个简单的TCP服务器和客户端程序。TCP协议的性能优化:探讨如何通过调整TCP参数、使用非阻塞I/O、多线程/多进程等技术来提升TCP应用的性能。

2025-01-27 23:25:06 1583

原创 Linux——网络(udp)

Linux——网络基础(1)-优快云博客一、upd函数及接口介绍1. 创建套接字 -socket函数domain:指定协议族,对于 UDP 编程,通常使用AF_INET表示 IPv4 协议族。type:指定套接字类型,对于 UDP,使用SOCK_DGRAM表示数据报套接字。protocol:指定具体的协议,一般设置为 0,让系统自动选择合适的协议(对于SOCK_DGRAM通常为 UDP)。返回值:成功时返回一个非负的套接字描述符;失败时返回 -1,并设置errno以指示错误类型。

2025-01-26 21:15:26 1709

原创 Linux——网络基础(1)

linux——网络基础-优快云博客一、文件传输协议这张图展示了 FTP(文件传输协议)通信过程中各层协议的交互逻辑,涉及应用层、传输层、网络层和数据链路层,以下是详细通信逻辑和过程:应用层FTP 客户发起请求:FTP 客户有文件传输需求,依据 FTP 协议向 FTP 服务器发送请求,比如请求下载或上传文件。此时,FTP 客户生成 FTP 协议数据单元(PDU),包含具体的操作指令(如读取文件列表、下载文件等)。传输层TCP 封装:FTP 客户的请求数据到达传输层后,TCP 协议对其进行封装。

2025-01-26 01:02:19 1571

原创 linux——网络基础

目录文章目录踏入网络世界:探索 Linux 网络的无垠天地一、网络发展早期单机处理模式网络发展的需求催生网络发展后的优势对比二、局域网or广域网典型局域网架构广域网连接多个局域网二者关系三、协议语言层与汉语协议通信设备层与电话机协议接口的作用分层与变更的好处四、OSI(Open System Interconnection)七层模型物理层数据链路层网络层传输层会话层表示层应用层五、TCP/IP 五层模型TCP/IP 四层模型发送端封装过程接收端解包过程总结在数字化浪潮奔涌的当下,网络已成为连接世界的无形纽带

2025-01-25 00:07:59 2294

原创 Linux——线程首尾(各个小知识及理解)

pthread_cp_1_21 · MFF的库/linux - 码云 - 开源中国 (gitee.com)环形队列,线程池及线程的封装。一、线程安全的单例模式是什么?单例模式是一种常用的软件设计模式,它确保一个类只有一个实例,并提供一个全局访问点。在多线程环境下,实现线程安全的单例模式有多种方式,以下是几种常见的实现方式:饿汉式特点:在类加载时就立即创建单例实例,不存在线程安全问题,因为类的加载是由 JVM 保证线程安全的。

2025-01-23 00:53:06 831

原创 Linux——信号量和(环形队列消费者模型)

信号量(Semaphore)是一种用于多线程或多进程环境下实现同步和互斥的机制。一、信号量是什么?信号量本质上是一个计数器,用于控制对共享资源的访问。它的值表示当前可用的资源数量。当一个线程或进程想要访问某个共享资源时,它需要先检查信号量的值。如果信号量的值大于 0,则表示有可用资源,该线程或进程可以获取资源并将信号量的值减 1;如果信号量的值为 0,则表示没有可用资源,该线程或进程需要等待,直到其他线程或进程释放资源,使信号量的值大于 0。

2025-01-21 22:24:15 1292

原创 Linux——线程条件变量(同步)

上篇博客我们介绍基础的线程控制及线程的锁;还有互斥,那么有了互斥就有同步;我们介绍互斥是多个线程去抢占一个共享资源对其操作,从而导致共享资源的紊乱,为了解决这个问题我们引入了锁,对其加锁了以后共享资源的处理就不会出现同时进行处理了;那么对于一个共享资源我们想要同时对其操作有应该怎么办呢?那么我们就介绍一下同步机制。初始化等待条件变量​​​​​​​唤醒线程​​​​​​​销毁条件变量。

2025-01-19 23:54:11 890

原创 Linux——多线程的控制

我们在上一篇博客中学习了单线程的基本控制,及创建、阻塞、终止等操作,这篇博客介绍多个线程的控制。一、线程函数的认识1、基本函数的回顾1、线程的创建pthread_create2、线程阻塞pthread_join3、线程退出pthread_exit线程锁是多线程编程中的一个重要概念,主要用于解决多线程并发访问共享资源时可能出现的竞态条件1、生活案例介绍锁。

2025-01-19 01:22:04 962

原创 Linux——线程的慨念及控制

进程是资源分配的基本单位线程是调度的基本单位线程共享进程数据,但也拥有自己的一部分数据:线程ID一组寄存器栈errno信号屏蔽字调度优先级进程的多个线程共享 同一地址空间,因此Text Segment、Data Segment都是共享的,如果定义一个函数,在各线程中都可以调用,如果定义一个全局变量,在各线程中都可以访问到,除此之外,各线程还共享以下进程资源和环境:文件描述符表每种信号的处理方式(SIG_ IGN、SIG_ DFL或者自定义的信号处理函数)当前工作目录用户id和组id关系图。

2025-01-18 03:39:00 627

原创 Linux——信号的补充

Linux——信号的创建、保存和处理-优快云博客信号是 Linux 系统中一种强大的进程间通信和进程控制机制。通过kill命令或kill函数发送信号,通过signal或sigaction函数处理信号。信号处理函数需要考虑可重入性和信号屏蔽字,避免使用不可重入函数。信号可以是同步或异步的,根据不同的来源和情况进行处理。

2025-01-17 00:45:16 762

原创 Linux——信号的创建、保存和处理

上一篇博客讲解了3种创建信号的方式1、键盘输入的方式;比如ctrl+c等2、系统调用接口;abort这3个接口3、命令行;这篇再介绍最后两种方式一、创建进程的信号回忆前三种常见信号方式1、键盘输入方式在进程运行时,我们输入ctrl+c(2号型号)依次方式获得信号;2、系统接口3、指令获得信号在我们进程在运行时,我们输入指令加上所需要的信号再加需要接受信号的pid即可;现在我们学习信号获得信号方式。

2025-01-16 02:56:23 984

原创 Linux——进程信号

信号是操作系统中用于进程间通信或者操作系统与进程间通信的一种异步事件通知机制。它就像是一种 “软件中断”,进程在运行过程中,不需要主动去检查某个事件是否发生,而是当事件发生时(信号产生),操作系统会将信号发送给相关的进程。信号有多种类型,每种类型代表不同的事件,如终止信号(SIGTERMSIGKILL)、暂停信号(SIGSTOPSIGTSTP)、继续信号(SIGCONT)等。

2025-01-14 03:07:52 615

原创 linux——进程间通信system V消息队列

在之前我们手搓管道时,我们知道进程和进程之间想要通信,我们得有一块公共的内存来进行数据的交互一、system V消息队列是什么?定义System V 消息队列是 System V IPC(Inter - Process Communication,进程间通信)机制中的一种。它提供了一种在不同进程之间传递消息的方式,这些进程可以在同一台计算机上运行。消息队列允许一个进程向消息队列发送消息,而另一个进程从这个消息队列中读取消息,从而实现进程间的异步通信。共享内存是在内存是唯一确。

2024-12-04 00:37:34 1021

原创 Linux——命名管道及日志

在我们循环创建子进程的时候,子进程回去拷贝父进程的页表,这样就会让下一个要创建的子进程指向上一个子进程。就会像图片中的这样。一、命名管道是什么?定义命名管道(Named Pipe)是一种进程间通信(IPC)机制。它可以在同一台计算机的不同进程之间,或者在跨越网络的不同计算机的进程之间进行通信。命名管道就像是一个管道,数据可以通过这个管道在进程之间流动,并且它有一个名字,就像文件一样可以被其他进程识别和访问。与匿名管道的区别。

2024-12-02 23:48:52 1330

原创 linux——进程间通信及管道的应用场景

上篇博客我们学习了进程间通信,并且我们还写了一个简单的进程间的通信,实现了子进程写数据父进程读数据。管道的特征:1、具有血缘关系的进程进行进程间通信;2、管道只能单向通信;3、父子进程是会进程协同的,同步与互斥的——保护管道文件的数据安全4、管道是面向字节流的;5、管道是基于文件的,而文件的生命周期吃随进程的!一、进程间通信的四种情况a:读写端正常,管道如果为空,读端就堵塞;!count++;sleep(1);break;count++;sleep(1);

2024-12-01 23:39:46 917

原创 liunx——进程间通信(管道通信)

进程间通信(Inter - Process Communication,IPC)是指在不同进程之间传递数据或信号的机制。进程是操作系统中独立运行的程序实例,它们通常有各自独立的地址空间和资源。然而,在很多情况下,进程需要相互协作来完成复杂的任务,这就需要进行通信。例如,在一个多任务的操作系统环境下,一个文本编辑进程可能需要和一个打印进程协作。编辑进程负责准备要打印的文档内容,然后通过某种进程间通信方式将文档内容数据传递给打印进程,打印进程才能将文档打印出来。进程间通信目的。

2024-11-28 00:40:50 711

原创 linux——结合动静态库等物理内存重新理解地址空间

程序编译好之后,内部有地址的概念嘛?答案:有的它们是什么地址呢?物理地址还是虚拟地址呢?一、程序没有加载到内存之前的地址当文件没有加载到内存时,是用地址的概念的平坦模式 0~4GB内存将程序平坦开编译器也要考虑系统。当编译时就用编址的过程。在调用时也就调用编好的地址。我们调用这个编址是虚拟地址,也就是逻辑地址。所以在没有加载到物理地址时就有逻辑地址了。int a = 10;int b = 20;int x = 30;int y = 40;

2024-11-27 01:30:00 933

原创 linux——动静态库

在上一篇博客中,已经解释动静态库的概念在上一篇博客中已经创建了一个静态库,并且使用了一下静态库。库搜索路径从左到右搜索-L指定的目录。由环境变量指定的目录 (LIBRARY_PATH)由系统指定的目录/usr/lib/lib64/1、第三方库,在往后使用时,必须要用gcc -l 来指定文件名;2、深度理解errno本质;3、查看动静态库链接ldd a.out4、gcc 默认是动态库链接,如果没有动态库,只能用静态库链接;5、如果需要链接多个库,gcc可以链接多个库;

2024-11-26 18:20:43 1809

原创 Linux——文件系统清尾、动静态库

在软件开发领域,随着项目规模不断扩大、功能日益复杂,代码的复用性和管理成为至关重要的问题。为了避免重复编写相同功能的代码,提高开发效率,动静态库应运而生。一、动静态库是什么?•静态库:它是一组目标文件的集合,在程序编译链接阶段,会将静态库中的代码直接复制到最终的可执行文件中。这意味着可执行文件在运行时不再依赖于静态库本身,拥有相对独立完整的代码体系。例如,在开发一些简单的命令行工具时,可能会将常用的字符串处理函数等打包成静态库供不同工具复用。• 动态库。

2024-11-26 00:38:03 1008

原创 linux——文件系统与inode

在Linux操作系统的世界里,文件系统是极为关键的组成部分,而inode则是其中一个核心概念。在linux中一切皆文件。一、文件系统与inode是什么?Linux文件系统负责对存储设备上的数据进行组织、管理和存储,它提供了一种有序的方式来存储和访问文件、目录等各类数据资源。不同的Linux文件系统(如ext4、xfs等)有着各自的特点和优势,但都遵循着一些基本的原理来确保数据的有效管理。inode,即索引节点,它在文件系统中扮演着举足轻重的角色。

2024-11-25 00:20:25 973

原创 linux文件系统

Linux作为一款广泛应用的操作系统,其文件系统在整个系统架构中占据着极为重要的地位。Linux文件系统有着独特的设计理念与强大的功能特性。它旨在高效地管理计算机中的各类文件资源,无论是文本文件、程序文件还是多媒体文件等,都能被妥善组织与处理。从历史发展来看,Linux文件系统历经了不断的演进与完善。早期的设计就注重了开放性与灵活性,这使得它能够适应多种不同的应用场景与硬件环境。与其他常见操作系统的文件系统相比,Linux文件系统往往具备更高的可定制性。

2024-11-24 01:30:00 1147

原创 Linux——用户级缓存区及模拟实现fopen、fweite、fclose

缓冲区位于用户程序和硬件设备之间,用来缓存数据,目的是让快速的 CPU 不必等待慢速的输入输出设备,同时减少操作硬件的次数。对于 IO 密集型的网络应用程序(如网站、数据库、DNS、CDN 等),缓冲区的设计至关重要,它能十倍甚至一百倍得提高程序性能。关于缓冲区还有更多的内容,将在 “文件操作” 一章中深入讲解。

2024-11-23 21:15:54 953

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除