- 博客(22)
- 收藏
- 关注
原创 左值右值?右值引用
在实际的用法中,右值引用和std::move被广泛用于在STL和自定义类中。,把被拷贝者的数据移动过来,被拷贝者后边就不要了,这样就可以避免深拷贝了。在常见的编程语言中,一个值的声明和复制一般是这样的(以C++为例)?在C++11标准中,出现了一个新的特征——右值引用,关键词为。我们可以提供一个以右值引用为参数的。延申这个概念,则可将有地址的变量为。此外右值引用不能指向左值,但是使用。,而没有地址的临时变量和常量为。
2024-01-14 23:53:36
740
原创 守护程序创建
系统调用,创建一个新的会话并成为会话的领头进程。这有助于确保守护程序不受控制终端的影响,即使终端关闭,守护程序仍然可以继续运行。守护程序执行其特定的任务或服务。这可能涉及监听网络连接、定期执行某些操作、处理系统事件等。守护程序会关闭其继承自父进程的所有文件描述符,以避免对终端和其他可能的文件描述符的依赖。系统调用创建一个子进程。父进程负责启动守护进程,而子进程则成为实际的守护进程。通常,守护进程会将当前工作目录更改为根目录,以确保不会与文件系统关联。
2023-12-05 09:43:16
78
1
原创 在 macOS 下创建多线程的极限与调优
在 macOS 系统中,线程的创建数量同样受到一些系统资源的限制。与 Linux 不同,macOS 使用的是 XNU 内核,因此有一些差异。本文将探讨在 macOS 系统中创建多线程的情况,包括系统资源限制、查看限制的方法以及一些调优策略。
2023-12-04 00:58:04
429
原创 Linux下创建多线程的极限
在Linux系统中,线程是轻量级的执行单元,允许程序以并发的方式执行任务。然而,对于一个Linux系统,究竟可以创建多少个线程呢?这涉及到一些系统资源的限制。
2023-12-04 00:51:06
291
原创 11. 盛最多水的容器
的方式进行遍历(事实上,大部分的无法使用分治和动态规划的遍历都使用这种方法。高度由最短的柱子决定,所以我们移动短端的指针,并将结果和遍历的最大值进行比较。由于容器的容积是由长度和高度组成,随着指针移动,长度变小,则重点关注高度。之后的重点便是确定指针遍历的方式。在这道题目中,我们可以通过。
2023-10-27 15:20:28
52
1
原创 Step 5:shell的提示行显示 [myshell_project]
分割文件名为了实现在主目录下显示,我们需要对命令进行分割,其原理和函数相同[[Step 1:MSH框架]]判断root若当前为用户为root则需要进行区分显示,判断方法是通过函数,root的uid为0获取用户名对于用户名,我们可以使用来获得一个passwd结构体:可见,我们只需要获取pw_name即可。而需要输入当户的uid,所以,我们只需要在里面输入即可判断位置是否在主目录主目录的位置是,所以我们只用判断在分割目录时,的大小是否大于一即可。颜色打印通过不同的
2023-10-17 11:49:27
69
原创 Step 4:字符颜色 [myshell_proect]
更加详细的介绍详见:[“\033”(ESC)的用法-ANSI的Esc屏幕控制:_\033。方括号后面可以接入各种参数,从而控制字符表达。如下给出一些常用的颜色相关的宏定义。linux中,颜色可以通过。
2023-10-17 11:48:30
32
原创 Step 3:makefile使用 [myshell_project]
【代码】Step 3:makefile使用 [myshell_project]
2023-10-17 11:47:15
39
原创 Step 1:MSH框架 [myshell_project]
在shell框架中,可以将内置命令放在父程序的代码中,直接运行。子程序命令则通过封装来进行调用。shell中的命令大致可以分为两种,即内置命令和子程序命令。
2023-10-17 11:46:26
55
原创 Step 2:libreadline [myshell_project]
【代码】Step 2:libreadline [myshell_project]
2023-10-17 11:44:58
133
原创 回文字的判断
给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
2023-10-17 11:40:46
49
原创 字符串转换整数 (atoi)
如果整数数超过 32 位有符号整数范围 [−231, 231 − 1] ,需要截断这个整数,使其保持在这个范围内。具体来说,小于 −231 的整数应该被固定为 −231 ,大于 231 − 1 的整数应该被固定为 231 − 1。将前面步骤读入的这些数字转换为整数(即,“123” -> 123, “0032” -> 32)。如果没有读入数字,则整数为 0。请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。
2023-10-17 11:30:33
37
原创 Linux上的图像化界面(GUI)
• 桌面环境是一个更大的集成图形化系统,包括窗口管理器以及许多其他图形化工具、应用程序和资源管理器。• GNOME:一个流行的、现代的桌面环境,使用GNOME Shell窗口管理器。• KDE Plasma:另一个流行的桌面环境,使用KWin窗口管理器。• LXQt:另一个轻量级桌面环境,使用Openbox或其他窗口管理器。• XFCE:一个轻量级的桌面环境,适合资源受限的系统。
2023-10-12 08:22:46
766
原创 C(003):C语言结构体字符对齐【005】
在C语言中,结构体是一种自定义的数据类型,用于组合不同类型的数据成员。结构体的内存对齐(字节对齐)是指结构体变量在内存中存储时按照一定规则对齐的方式。
2023-05-28 19:57:07
106
原创 计网(002):物理层【004】
双扭线,最古老、常用的传输媒体,将两根相互绝缘的铜导线并排放在一起,用绞合的方法减少对相邻电线的电磁干扰。信号在信道上的传输会因为各种问题造成失真,但数字信号在一定的失真范围内是可以对信号进行还原的。最高带宽接近1GHz。将基带信号的频率范围搬移到更高的频段,并转化为模拟信号,被调制后,称为带通调制。电话中,双绞线的有效距离只有几到十几公里,更远的距离需要使用中继器避免信号失真。使用调制的方法,将不同的信号分到不同的频率。,常包含较多的低频分量甚至是直流分量,许多信道并不能进行传输,所以要对其进行。
2023-05-25 21:07:46
133
1
原创 计网(001):计算机网络概述【003】
因特网概述因特网发展的三个阶段因特网的标准化工作因特网的组成因特网=边缘部分(资源子网)+核心部分(通信子网)计算机网络的性能计算机网络的性能指标计算机网络的非性能特征计算机网络的体系结构具有五层协议的体系结构实体、协议、服务和服务访问点TCP/IP 的体系结构。
2023-05-25 21:04:11
55
1
原创 C(002):C语言新手常见错误类型总结【002】
其次,要仔细检查代码中的分号使用情况,避免缺失或多余的情况。总之,C语言的常见错误包括语言符号的错误、分号的缺失或多余、变量命名的错误、数据类型的使用错误、赋值运算符与关系运算符的混淆、scanf函数中的地址运算符错误、switch语句中的break语句漏写,以及数组的定义或使用错误。这些错误包括语言符号的使用错误、分号的缺失或多余、变量命名的错误、数据类型的使用错误、赋值运算符与关系运算符的混淆、scanf函数中的地址运算符错误、switch语句中的break语句漏写,以及数组的定义或使用错误等。
2023-05-25 20:48:00
157
1
原创 C(001):关于指针在变量跨函数调用的应用——以Swap函数为例【001】
在c语言中,相信指针是非常让大家头疼的部分,总感觉他像是幽灵一样,飘忽不定,这来自于他的灵活性。但如果把指针搞清楚,相信你一定会爱上它的。指针的本质是一个变量,就如每一个数字变量都有一个无符号性的对应变量,c语言中的每一个数据类型又有其对应的变量。int a;int x=a;int* y=&b;那么,指针里面既然是变量,那么它装的是什么呢?答案是地址,我们通过指针的初始化过程可以发现,我们通过“&”这个取地址符,将”b”变量的地址放入了“y”中。
2023-04-18 14:34:45
202
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人