自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql数据库的内置函数--7

目录内置函数日期函数字符串函数数学函数其它函数在mysql中这些函数用select进行使用

2023-05-16 20:24:25 713

原创 mysql数据库的表的增删查改

2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事物,所以无法回滚。-- 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等。-- 2 row affected: 表中有冲突数据,删除后重新插入。-- 1 row affected: 表中没有冲突数据,数据被插入。-- 1 row affected: 表中没有冲突数据,数据被插入。-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用。

2023-05-16 20:12:44 544

原创 mysql数据库的表约束

数据库表约束是用于定义和实施数据完整性的规则或条件。它们被应用于数据库表中的列,以确保数据的一致性、有效性和准确性。表约束可以强制执行特定的规则,限制数据的插入、更新或删除操作,以确保数据的完整性和一致性。

2023-05-14 10:13:10 511

原创 mysql数据库的数据类型 -- 4

示例:用途:适用于存储具有固定选项的数据,如颜色选项、状态选项等。2. SET 类型:

2023-05-13 22:56:42 727

原创 mysql数据库的表操作 --3

character set 字符集 collate 校验规则 engine 存储引擎;character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准。collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准。这是使用innodb存储引擎所创建的文件。datatype 表示列的类型。field 表示列名。

2023-05-13 21:43:28 478

原创 mysql数据库的库操作 --2

库操作。

2023-05-13 18:25:47 838

原创 数据库基础篇 -- 1

需要注意的是,虽然 SQL 是一个标准的数据库查询语言,但不同的数据库管理系统(如MySQL、Oracle、SQL Server等)可能会在语法和功能上有所差异,因此需要根据具体的数据库系统来使用相应的 SQL 特性和语法。通过选择合适的存储引擎,可以根据应用程序的需求优化数据库的性能、数据完整性和可靠性。除了上述分类,还有其他类型的 SQL 扩展和变体,如存储过程语言(如PL/SQL和T-SQL)、动态 SQL、嵌入式 SQL 等,它们提供了更高级的功能和特性,用于编写复杂的数据库逻辑和业务规则。

2023-05-13 17:42:36 876

原创 linux套接字

套接字(Socket)是一种用于在计算机之间进行通信的软件组件或接口。它提供了一种标准化的方式,使得应用程序能够通过网络连接进行相互之间的通信。在计算机网络中,每台计算机都有一个唯一的IP地址,用于标识这台计算机。当应用程序需要在网络上进行通信时,它们可以使用套接字来建立连接并进行数据交换。套接字可以使用不同的传输协议,例如TCP和UDP,以实现不同的通信需求。套接字有两种类型:客户端套接字和服务器套接字。客户端套接字通常用于向服务器请求服务,而服务器套接字则用于接受客户端的请求并提供服务。

2023-03-26 15:33:01 1903 2

原创 网络基础知识

端口号是传输层的内容 端口号是一个2字节16位的整数 端口号标识一个进程 ip地址+端口号能够表示网络上某一台主机的某一个进程 一个端口号只能被一个进程占用。源端口和目的端口 传输层协议的数据段有两个端口号,分别叫做源端口和目的端口号,描述数据是谁发的,谁接受的。{src_ip , src_port}套接字 <----> {dst_ip, det_port}套接字。ip地址(公网ip),标定了主机的唯一性 网络通讯,本质是进程见通信!1、操作系统要进行协议管理 -- 先描述,在组织。

2023-03-25 16:04:32 510

原创 深入理解Linux线程

线程(Thread)是程序执行的最小单位,是进程中的一条执行路径。在一个进程中,可以有多个线程同时执行不同的任务,实现多任务并发执行,提高系统的效率。线程可以共享进程的资源,如内存空间、文件句柄等,不同的线程之间可以通过共享内存等方式进行通信和同步。与进程相比,线程的创建和切换开销较小,能够更快地响应用户请求和处理任务。线程的主要作用是提高系统的并发性和效率。通过将一个进程分为多个线程并发执行,能够使CPU资源得到更好的利用,提高系统的处理能力。

2023-03-25 11:43:50 854

原创 深入了解 Linux 信号

引言:Linux 信号是操作系统中的重要组成部分,可以用于进程间通信、处理异常等多种场景。本文将深入介绍 Linux 信号的相关知识,包括信号的定义、类型、发送和接收、处理等内容,帮助读者更好地理解和使用 Linux 信号

2023-03-24 22:35:56 3822 1

原创 进程间通信之匿名管道和命名管道

管道是计算机通信领域设计者,设计出的一种单向通信的方式,linux原生提供管道通信。1、匿名管道是用来进行具有血缘关系的进程进行进程间同通信 -- 常用于父子通信。4、管道是基于文件的,文件的生命周期是随进程的,管道的生命周期是随子进程的。管道是用来进行具有血缘关系的进程进行进程间同通信 -- 常用于父子通信。3、管道提供的是面向流式的服务 -- 面向字节流 -- 协议。5、管道是单向通信的(半双工通信的一种特殊情况)b、写慢,读快,管道没有数据的时候,读必须等待。d、读关,写继续写,os终止写进程。

2022-11-26 18:08:39 903

原创 进程间通信的基本概念

进程间通信1、目的和必要性实现数据共享,资源共享,事件通知,进程控制等单进程,无法使用进程间的并发能力,无法实现多进程之间的协同工作,所以需要使用进程间的通信来使得多进程进行协同(进程间通信不是目的是手段)1、进程是具有独立性的,拥有自己虚拟地址空间 + 页表,来保证进程运行的独立性(进程内核数据结构+进程的代码和数据)2、进程间通信成本高(因为进程独立性很强,所以通信成本高)3、本质1、进程间通信的前提,让不同的进程看到同一块“内存”(特定的结构组织)

2022-11-19 19:07:48 254

原创 linux下的c/c++动静态库

静态库概念静态库是以.a结尾,程序在编译链接的时候将代码直接拷贝进自己的代码中,程序运行起来就不用使用静态库了,由于静态库将库中的代码全部拷贝进来,所以程序会变得很大库中没有main函数(为了方便别人使用自己的库,因为一个项目里面不能有两个main函数)

2022-11-08 20:16:46 1614 1

原创 linux中的inode文件编号和软硬链接

一个文件,对应一个inode属性节点,inode编号,linux在磁盘上存储文件的时候,将内容和属性分开存储ls -i可以查看文件的inode编号要了解inode编码,我们可以从磁盘下手,linux下df -h可以查看磁盘状态磁盘由磁盘盘片,磁头、、、等一些设备组成,我们向磁盘磁盘写入数据,本质是改变磁盘上的正负性为了我们能够很好的使用磁盘,我们会对磁盘进行分区,将磁盘一步步的细分,盘片-盘面-磁盘-扇区,我们对磁盘的管理本质上是对一个个小的扇区进行管理 boot block:启动块,用于扇区是否正常的su

2022-11-05 20:34:42 2053

原创 linux下的文件描述符

文件描述符从0开始,当我们打开文件的时候,os通过file*指针将这些文件用数据结构管理起来,当我们创建进程的时候,进程里面有一个文件指针,用来指向我们打开的文件,而文件描述符就是文件指针的下标,用来表示指向哪个文件,从而建立联系。从没使用的最小数开始分配,假如0被关闭了,那么下个打开的文件的文件描述符就是0。1、标准输出,默认对应显示器。2、标准错误,默认对应显示器。0、标准输入,默认对应键盘。

2022-10-14 14:56:42 328

原创 linux下的文件操作系统接口(open,write,read,lseek,close)

以下函数都是linux下的接口创建进程的时候会默认打开三个文件,0(stdin),1(stdout),2(stderr)

2022-10-11 21:32:12 1181

原创 linux下的进程控制

为了节省内存空间,父子进程大部分时候都是使用同一个位置的代码,只有当父子进程中某些变量的值发生改变的时候,编译器为了让他们互不影响,就会发生写时拷贝。WEXITSTATUS(status) 若非零,提取子进程退出码(查看进程退出码) 底层实现(status>>8)&0xFF。pid == -1 等待任意一个子进程退出 wait(int *status)函数,等待任意进程。子进程返回0,父进程返回子进程的pid,假如进程创建失败返回-1。假如我们不等待子进程退出,那么子进程会变成僵尸进程导致内存泄露。

2022-09-23 10:15:00 466

原创 前置++(--)和后置++(--)运算符重载

后置++,因为返回的是一个临时变量,所以不可以修改。不能出现i++++的情况。

2022-09-19 10:27:13 124

原创 进程地址空间

计算机通过页表来记录虚拟地址和物理地址,然后计算机通过页表的映射,通过虚拟地址找到物理地址,来进行变量的调用。,叫做cookie,保存申请的属性,所以free只要传入起始地址就行。我们发现val的地址都在同一区域,但是他们的val值却不一样。所看到的的并不是物理地址,而是虚拟地址。我们进程使用的地址不是物理地址,而是。虚拟地址(线性地址)申请的字节比设置的大。

2022-09-11 09:54:15 253

原创 环境变量的参数

export PATH=$PATH:hello程序所在路径 设置一个新的环境变量(仅在当前登录期间有效)通过一张环境表组织起来,环境表是一个字符指针数组,每个指针指向一个以’\0’结尾的环境字符串,最后一个指针是NULL。我们使用一些命令比如ls,没有指定路径就可以使用,是因为环境变量PATH已经设置了这些命令的路径,以:分开。set 显示本地定义的shell变量和环境变量。将我们的程序所在路径加入环境变量PATH当中。子进程的环境变量是由父进程继承过来的。

2022-09-10 20:23:34 842

原创 进程的概念

一个子进程已经退出,但是还不允许被os释放,处于一个被检测的状态-僵尸状态(一般是父进程或os检测),此时会一直等待父进程读取退出状态代码。Z(zombie):僵尸状态,一个进程已经退出,但是还不允许被os释放,处于一个被检测的状态-僵尸状态(一般是父进程或os检测)多个进程在一个cpu下采用进程切换方式,使得一段时间内,多个进程都能够进行运行,称为并发。linux中,运行命令,也是创建一个进程,内核上的说法是担任分配系统资源的实例。父进程退出,子进程还在,子进程就叫做孤儿进程!

2022-09-10 19:23:14 607

转载 操作系统(OS)

任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件。内核(进程管理,内存管理,文件管理,驱动管理)为用户程序(应用程序)提供一个良好的执行环境。其他程序(例如函数库,shell程序等等)与硬件交互,管理所有的软硬件资源。

2022-09-10 11:09:48 1079

原创 冯诺依曼结构体系

1.cpu读取数据(数据+代码),基本上是从内存中读取的。cpu不和外设直接交互。2.cpu要处理数据,需要先将外设中的数据,加载到内存中。cpu只和内存打交道。控制器:cpu可以响应外部事件(协调外部事件,比如拷贝数据到内存)运算器:算数运算,逻辑运算。

2022-09-10 10:58:38 173

原创 linux下的gdb调试器

我们的程序在发布的时候,有两个版本,release和debug,其中release是发行版本,debug是调试版本。step(s) 进入函数调用(逐过程,需设置断点让程序运行起来)next(n) 单行执行(逐语句,需设置断点让程序运行起来)break(b) 函数名 在某个函数开头第一行代码处设置断点。list(l) 数字 查看数字-5 - 数字+4行代码。break(b) n 在第n行设置断点。

2022-09-10 10:06:37 103

原创 linux下的版本控制器git

git pull 假如本地仓库与远程不同步,会产生冲突,需使用强制通知。.gitignore 提交时候不想提交某些后缀文件,可以添加到.gitignore。git init 初始化git,是当前目录有.git文件。git commit -m 日志 提交代码到本地仓库中。git rm 文件 删除文件(删除完后需要提交)git add . 添加全部文件到本地仓库。git add 文件 添加文件到本地仓库。

2022-09-04 15:40:48 190

原创 linux软件包管理器yum

yum list : grep 想要查找的内容 查找yum可以下载的软件。yum install -y 软件 安装软件。yum list 查看可以yum的软件。yum remove 软件 删除软件。-y 安装时候不再询问。

2022-09-04 15:15:09 74

原创 linux项目的自动化构建工具-make/makefile

PHONY:目标 伪目标文件(总是被执行的,每次使用都会被执行,总是会根据依赖关系,执行依赖方法,一般习惯clean加)make 只能执行第一个遇到的方法,假如第一行有文件找不到,就会继续往后面执行寻找。make会在当前目录下找名字叫“Makefile”或“makefile”的文件。makefile是一个文件。,需要make 依赖关系。编写makefile。如果需要执行其他方法。

2022-09-04 11:47:51 327

原创 linux下gcc,g++的使用

O0,-O1,-O2,-O3 编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高。-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面 gcc -E 文件 -o 要生成的文件。-shared 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.-o 文件输出到文件 gcc 文件 -o 要生成的文件。-static 此选项对生成的文件采用静态链接。-g 生成调试信息。-Wall 生成所有警告信息。-w 不生成任何警告信息。

2022-09-04 11:19:15 379

原创 linux下的动态静态库

4、链接(链接 -> 多个.o , .obj -> 合并形成一个可执行.exe)yum install -y glibc-static c语言静态库。1、预处理(a.去注释 b.宏替换 c.头文件展开 d.条件编译)将库中需要的方法的地址,直接填入可执行程序中,建立关联(节省资源)windows:.dll(动态库),.lib(静态库)Linux:.so(动态库) , .a(静态库)而代码在链接过程中,有两种库(静态库与动态库)2、编译(c->汇编)动态链接 - 动态库。静态链接 - 静态库。

2022-09-04 11:13:19 347

原创 linux中的vim工具

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入件。删除光标所在位置到后面的n个字符(包括自身) nx n为数字。删除n行(包括当前行) ndd n为数字。上下左右移动 h(左),j(下),k(上),l(右)跳转到第n行 :n n为数字。

2022-09-04 10:57:39 761

原创 linux粘滞位

假如用户在同一个目录下共同完成文件的写入,虽然我们可以设置权限使得别人不能写入查看,但是别人可以删除我们所写的文件,为了防止这种情况,我们可以使用粘滞位,这样我们只能删除自己所创建的文件了 (粘滞位只能给目录进行添加)当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由。chmod -t mytemp 删除粘滞位。chmod +t mytemp 添加粘滞位。二、该目录的所有者删除。三、该文件的所有者删除。

2022-09-04 09:07:56 150

原创 linux权限

更换拥有者和所属组需要root权限,我们可以使用sudo暂时以root的身份运行,使用一次,但是在信用列表中才可以用sudo。2,代表文件的属性,-为普通文件,d为目录,l为软链接,b为块设备文件,p为管道文件,c为字符设备文件,s为套接口文件。3,代表文件的权限,每三个为一组,从左到右分别为拥有者,所属组,其他人的权限,没有权限为-1,代表总大小,单位字节,也包括隐藏文件的大小(以.开头的是隐藏文件)root只能有一个,普通用户可以有多个,root基本上不受权限的约束。

2022-09-03 21:23:16 635

原创 linux的基础指令和通配符

新建一个不存在的文件,假如文件存在,则会更改文件的时间到touch的时间。:cp [选项] 文件 想要移到的路径 或者 cp 文件 想要移动的路径。grep -n '数据’ [文件] 从文件中找到指定的数据并且显示行数。:列出该目录下的所有子目录与文件,或者列出文件的文件名以及额外的信息。tar [选项] [压缩命名tar.gz(tgz)] 要压缩的文件。-v :压缩的过程中显示文件!grep -v '数据' [文件] 从文件中搜索初数据以外的内容。mv [某个路径的文件] [剪切文件路径]...

2022-08-31 21:15:00 602

原创 python字符串的扩展

目录字符串的三种定义方式字符串的拼接字符串的格式化快速格式化方式input()语句' '" """" """通过+字符串不能使用+和除字符串以外的内容进行拼接 方便拼接用占位符%假如有多个变量,需要用()将变量围起来f"内容{变量}"的格式 数据输入input(" ")input()不管输入什么都看作字符串类型,可以使用类型转换进行转换......

2022-08-31 19:49:16 285

原创 python基础知识

int() 假如需要字符串转换成数字,必须字符串中的内容都是数字。注意:#号和注释内容建议以一个空号隔开。字典:无序key-value集合。数字:整数,浮点数,复数,布尔。变量没有类型,存储的数据有类型。如何验证 type()语句。元组:有序的不可变序列。字符串:需要加双引号。列表:有序的可变序列。集合:无序不重复集合。.........

2022-08-31 19:40:58 188

原创 数据结构c语言实现之栈

目录栈的作用栈的接口栈的接口的实现栈的作用1、模拟实现栈中的后进先出2、可以将递归改成非递归栈的接口#pragma once#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<stdbool.h>typedef int QueDataType;typedef struct QueueNode{ struct QueueNode*

2022-05-20 09:14:56 129

原创 数据结构c语言实现之队列

目录队列的作用队列的接口队列接口的实现队列的作用1、排队,保持绝对公平2、广度优先搜索队列的接口#pragma once#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<stdbool.h>typedef int QueDataType;typedef struct QueueNode{ struct QueueNode* n

2022-05-20 09:10:01 137

原创 数据结构之顺序表和链表的优缺点

2022-05-20 09:03:19 143

原创 数据结构c语言实现之单链表

目录单链表的接口接口的实现单链表的接口#pragma once#include<stdio.h>#include<assert.h>#include<stdlib.h>typedef int SlistDateType;typedef struct SlistNode{ struct SlistNode* next; SlistDateType data;}Slist;//单链表不需要初始化//获取一个结点Slist* G

2022-05-20 09:01:50 235

空空如也

空空如也

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

TA关注的人

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