- 博客(30)
- 收藏
- 关注
原创 线程---互斥锁与生产者消费者模式
每个进程都拥有自己的数据段、代码段和堆栈段,这就造成进程在进行创建、切换、撤销操作时,需要较大的系统开销。为了减少系统开销,从进程中演化出了线程。线程存在于进程中,共享进程的资源线程是进程中的独立控制流,由环境(包括寄存器组和程序计数器)和一系列的执行指令组成。每个进程有一个地址空间和一个控制线程。
2024-09-13 09:11:28
1029
原创 进程间通信之共享内存
1,文件2,信号缺点传输数据量小优点方便3,管道优点携带数据缺点没有格式先入先出只能读一次麻烦分类无名管道有名管道4,消息队列优点有类型有格式5,共享内存优点快。
2024-09-11 16:19:12
986
原创 C++ STL 容器
vector 单端动态数组 随机访问迭代器重点比如软件历史操作记录的存储,我们经常要查看历史记录,比如上一次的记录,上上次的记录,但却不会去删除记录,因为记录是事实的描述。数据结构数组deque:双端动态数组 随机访问迭代器deque的使用场景:比如排队购票系统,对排队者的存储可以采用deque,支持头端的快速移除,尾端的快速添加stack栈容器 没有迭代器 先进后出queue队列容器 没有迭代器 先进先出list链表容器 双向迭代器重点。
2024-08-25 10:05:39
1077
原创 C++ 之友元篇 + string
友元类:如果B是A的友元类,那么B中可以任何一处都可使用A的私有成员。6.对象名.length()可以获取字符串长度,不包含\0。友元全局函数:当前函数中可以使用友元的那个类的私有成员。友元成员函数:当前函数中可以使用友元的那个类的私有成员。string 对象名="值";5.可以使用==判断字符串内容是否相同。c++提供的一个对字符串处理的类。2.可以使用cout输出<<3.可以使用cin输入>>4.可以使用+或+=拼接。
2024-08-15 20:36:29
568
原创 C++类与对象
因为类的定义只需定义一次,所以我们一般将其写在头文件中。1.在当前类中调用当前类的成员,此时this可以忽略不写。谁调用this所在的函数,this就代表谁,是个指针。注意浅拷贝,此时一定要进行深拷贝,避免释放导致的崩溃。对象名.成员函数名(实参列表)类名 *对象指针=new 类型(实参列表);类名 对象名(形参列表);对象名.成员变量名=值;protected:当前类中或子类中使用。在其对应的源文件中实现其类的成员函数。private:当前类中使用,默认使用。但是类中有成员函数,顾在头文件中定义类,
2024-08-14 18:58:37
876
原创 C++ 对C的扩展
全局变量:c/c++没区别,会出现段错误局部变量:1.如果const修饰的普通类型的变量,使用常量初始化如:此时会生成符号表,当获取其变量的地址时会开辟新的地址,使用获取的地址修改其值,不会影响符号常量表中的数据2.如果const修饰的普通类型的变量,使用变量初始化如:int x=10;此时不会生成符号常量表,会直接开辟地址,获取的地址修改其值,会修改其内容3.如果const修饰的是自定义变量1.无法直接修改其自定义类型中的成员变量2.无法获取自定义类型中的成员变量的地址。
2024-08-13 20:46:07
1030
原创 C语言——字符串相关函数
[a-z] 表示匹配 a 到 z 中任意字符(尽可能多的提取,遇除a-z以外结束)%[^aFc] 匹配非 a Fc 的任意字符,贪婪性,遇a,F,c结束。%2d:取两位整数,如果超过2位取两位,不足两位有几位取几位。%[^a-z]表示读取除 a-z 以外的所有字符。strchr函数:查询单个字符首次出现的位置。查找到的字符串第一次出现的位置。由系统提供的对字符串处理的函数。将会切割上一次剩余的字符串。函数对字符串拷贝为深拷贝。第一次出现的位置的地址。切割上一次剩余的字符串时。指向的内存中写入指定内容。
2024-08-06 19:38:06
985
原创 C语言——指针
地址编号是内存每一个字节的编号统称。如int n = 10;在内存分配了4个字节每个进程(运行着的程序)都有寻址范围32位机的寻址范围时系统会为每一个字节分配一个32位的地址编号。便于系统管理内存32位机的地址编号占4字节64位机的地址编号占8字节。
2024-08-04 15:16:03
1555
原创 C语言——动态库与静态库
gcc 源文件名 -o 生成的可执行文件名 -L库文件路径 -l库名 -I头文件所在路径。gcc -static 源文件名 -l 库文件名 -o 生成的可执行文件夹。gcc -static 源文件名 -o 生成的可执行程序名。使用动态库的源文件与动态库不在同一文件夹下。使用动态库的源文件与动态库不在同一文件夹下。使用动态库的源文件与动态库在同一文件夹下。使用动态库的源文件与动态库在同一文件夹下。动态库文件在系统提供的文件夹。动态库文件在系统提供的文件夹。系统提供存储动态库的文件夹。
2024-08-01 20:58:12
567
原创 C语言——数组
数据类型 数组名[长度];注意全局变量数组中的值为0局部变量数组中的值为随机数不建议使用2,部分初始化数据类型 数组名[长度] = {值1,值2,值3,....};注意此时值的个数小于长度将值从下标0的位置开始依次存储到数组中剩余位置用0填充特殊情况将数组中所有数据制0。
2024-07-30 19:27:16
967
原创 C语言——函数
实参列表要与形参列表一致(长度一致,顺序一致,数据类型一致)printf("%d的阶乘结果为:%d\n",x,num);:局部变量所定义的代码块中可用,同一个作用域下变量名不能相同。:随着所在的函数的第一次调用而生成,随着所在程序的执行而销毁。printf("5的阶乘结果为:%d\n",num);:随着所在程序的启动而生成,随着所在程序的执行完毕而销毁。:随着所在函数的调用而生成,随着所在函数执行完毕后销毁。:随着所在程序的启动而生成,随着所在程序执行完毕后销毁。定义一个函数计算指定的数的阶乘。
2024-07-29 19:49:01
259
原创 C语言——循环语句
printf("公鸡:%d只,母鸡:%d只,小鸡:%d只\n",g,m,x);printf("10的阶乘结果为:%d\n",num);在循环语句的循环体中编写循环语句,称为循环嵌套。百位 == 个位 + 万位 + 十位 + 千位。printf("%d是水仙花数\n",i);printf("%d是水仙花数\n",i);条件表达式永远为真的循环,称为死循环。再次判断条件表达式是否为真。再次判断条件表达式是否为真。先判断条件表达式是否为真。在判断条件表达式是否为真。return 后续补充。
2024-07-27 11:00:10
898
原创 C语言——分支语句
代码n+1:当变量值不等于以上所有常量,执行此处代码。printf("%d是偶数\n",num);printf("%d是奇数\n",num);代码1:当变量值等于常量1时,执行此处代码。代码2:当变量值等于常量2时,执行此处代码。代码3:当变量值等于常量3时,执行此处代码。代码n:当变量值等于常量n时,执行此处代码。当以上条件表达式都为假,执行此处代码。当条件表达式1为真,执行此处代码。当条件表达式2为真,执行此处代码。当条件表达式3为真,执行此处代码。当条件表达式n为真,执行此处代码。
2024-07-25 20:29:22
1035
原创 C语言——运算符
赋值运算符如:int a = 10;int b = 0;算数运算符加减乘除取余++递增++在前先递增在参与运算流程取值+1赋值++在后先参与运算在递增流程取值+1赋值使用取值参与运算--递减--在前先递减在参与运算--在后先参与运算在递减注意小类型与小类型运算结果为小类型如;1 / 2 = 0;小类型与大类型运算结果为大类型+=int a = 1;int b = 2;a += b;int a = 1;
2024-07-25 20:11:41
862
原创 C语言基础
大类型的变量或值赋值给小类型的变量,需要强制转换。小类型的变量或值赋值给大类型的变量或值,无需操作。后面值的个数由前面内容中占位符的个数决定。反码 = 源码符号为不动,其他为依次取反。此时我们会发现出现的值为负数与存的值不同。volatile 数据类型 变量名;extern 数据类型 变量名;定义子啊函数外的变量称为全局变量。变量的第一次赋值称为变量的初始化。定义在函数中的变量称为局部变量。输出的内容中有两种特殊的内容。sizeof(数据类型或值);auto 数据类型 变量名;
2024-07-25 09:35:45
712
原创 Linux 简单静态网站的部署
5.4:重新加载配置文件,服务不中断。在文件的第42行下添加一下一行内容。(注:*代表这个包中的所有文件)5.2:修改nginx的配置文件。5、修改nginx的配置文件。(该zip为自己的压缩包)5.3:检查配置文件语法。3、将代码压缩包解压。
2024-06-22 10:38:22
257
2
原创 查看文件内容及配置alinyun
"内容" > filename 将"内容"写进你所建立的文件中。5 filename 查看文件后5行。5 filename 查看文件前5行。查看文件尾部内容,默认后十行。(重新加载配置文件,服务不中断) 【关闭】查看文件前面的内容,默认查看前十行。4、nginx默认网站发布根目录。2、配置centos基础源。1、删除原来的yum源。下面是第二种启动关闭方式。3、配置epel扩展源。3、验证是否启动成功。
2024-06-22 10:17:36
311
原创 Linux 文件和目录
cp /opt/1.txt /mnt (此为例子,后可cd /mnt回车,进入mnt,ls查询,看是否文件复制成功)mv /opt/100.txt /mnt (100.txt为自定义文件)cp 源文件名称 新文件名称 重命名。.. 返回上一层目录../..(注:{}中的内容也可根据自己需求自定义)cp -r 源目录 目标路径。重命名,支持在移动过程中重命名。cp 源文件 目标路径。mv 源文件 目标路径。绝对路径: /出发的就是绝对路径。
2024-06-22 09:57:29
168
原创 Linux IP的简单设置
windows系统查看ip地址: ipconfig(注:如何打开Windows系统呢?Windows系统键盘标志+R打开运行系统,其次输入cmd,回车进入)1、光标移动至最后一行的最后一个字符上,然后输入小写字母a,使用退格键删除最后一行的no,并修改为yes。重启网卡服务 systemctl restart network。centos: ip a(ip后有空格)4、在上一步的冒号后边输入wq。
2024-06-22 09:23:45
197
原创 Linux 时间简单理解
手动修改: hwclock --set --date "20240618 14:13:33"(""中的时间自我设定)手动修改: date -s "20240618 14:13:33" (""中的时间自我设定)hwclock --hctosys 将硬件时间同步给系统。hwclock --systohc 将系统时间同步给硬件。同步网络时间: ping baidu.com。查看: hwclock -r。写入主板: hwclock -w。小技巧:Ctrl +C 退出当前运行。
2024-06-22 09:10:02
205
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人