【WSL/WSL 2-Redis】解决Windows无法安装WSL Ubuntu子系统与Redis安装
前言
在现代计算环境中,开发人员和技术爱好者通常需要在不同的操作系统之间切换,以便利用各种工具和应用程序。在这方面,Windows用户可能发现WSL(Windows Subsystem for Linux)是一个强大的工具,它允许他们在Windows操作系统上运行Linux发行版,无需双重引导或虚拟机。本文将探讨WSL的安装过程,提供常见问题的解决方案,并帮助用户更好地了解如何在Windows中创建Linux环境,以便于开发、测试和执行Linux命令。
文章目录
- **前言**
- **探索Windows中的Linux世界:WSL(Windows Subsystem for Linux)安装与解决常见问题**
- 什么是WSL
- 安装WSL Ubuntu
- 安装镜像连接
- 常见报错
- The Windows Subsystem for Linux optional component is not enabled
- 方法一
- 方法二
- WslRegisterDistribution failed with error: 0x800701bc
- 方法一
- 方法二(可能有风险)
- WslRegisterDistribution failed with error: 0x80370102
- Ubuntu安装到哪了?
- 彻底卸载 Ubuntu 或任何其他 Linux 分发版
- WSL/WSL 2相关指令
- **检查WSL已安装的Linux分发版列表**:
- **检查WSL已安装的Linux的详细信息**:
- 切换whl版本
- Redis
- **总结**
探索Windows中的Linux世界:WSL(Windows Subsystem for Linux)安装与解决常见问题
什么是WSL
WSL(Windows Subsystem for Linux)是一项功能,允许在Windows操作系统上运行Linux发行版。它提供了一个类似于Linux的环境,允许用户在Windows上运行Linux应用程序和使用Linux命令行工具。WSL的主要作用包括:
-
Linux 应用程序运行:WSL允许用户在其Windows系统中运行Linux应用程序,无需双重引导或虚拟机。
-
开发和测试:开发人员可以在Windows上使用WSL来进行Linux开发,测试和调试。这对于跨平台开发非常有用。
-
使用 Linux 命令行工具:WSL提供了一个Linux命令行界面,用户可以使用Linux命令和工具,如Bash、grep、sed等,来执行任务。
-
文件共享:WSL允许用户轻松共享文件和数据,以便在Windows和Linux之间传输信息。
安装WSL Ubuntu
由于国内的网络原因在微软商店中下载WSL子系统可能存在网络问题而无法下载,微软为WSL子系统的常见发行版提供了原始镜像下载链接。
作者:宽屏巴洛克 https://www.bilibili.com/read/cv20802408 出处:bilibili
安装镜像连接
Ubuntu:
- 默认发行版:Ubuntu默认发行版
- Ubuntu 22.04 LTS:Ubuntu 22.04 LTS
- Ubuntu 20.04:Ubuntu 20.04
- Ubuntu 20.04 ARM:Ubuntu 20.04 ARM
- Ubuntu 18.04:Ubuntu 18.04
- Ubuntu 18.04 ARM:Ubuntu 18.04 ARM
- Ubuntu 16.04:Ubuntu 16.04
Debian:
- Debian:Debian
Kali Linux:
- Kali:Kali Linux
SUSE Linux:
- SUSE Linux Enterprise Server 12:SUSE Linux Enterprise Server 12
- SUSE Linux Enterprise Server 15 SP2:SUSE Linux Enterprise Server 15 SP2
- SUSE Linux Enterprise Server 15 SP3:SUSE Linux Enterprise Server 15 SP3
openSUSE:
- openSUSE Tumbleweed:openSUSE Tumbleweed
- openSUSE 15.3:openSUSE 15.3
- openSUSE 15.2:openSUSE 15.2
Oracle Linux:
- Oracle Linux 8.5:Oracle Linux 8.5
- Oracle Linux 7.9:Oracle Linux 7.9
Fedora Remix:
- Fedora:Fedora Remix
这些链接可以帮助用户下载并安装所选的Linux分发版。用户可以根据自己的需求和偏好选择适合的分发版。
PowerShell安装法(较慢)
-
打开Windows PowerShell(管理员权限):按下
Win + X
,然后选择“Windows PowerShell (管理员)”选项。 -
下载Ubuntu:运行以下命令以下载适用于WSL的Ubuntu 16.04:
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing
-
安装Ubuntu:运行以下命令以安装下载的Ubuntu包:
Add-AppxPackage .\Ubuntu.appx
-
启动Ubuntu:安装完成后,可以在开始菜单中找到并启动Ubuntu。
常见报错
The Windows Subsystem for Linux optional component is not enabled
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x8007019e
The Windows Subsystem for Linux optional component is not enabled. Please enable it and try again.
See https://aka.ms/wslinstall for details.
Press any key to continue...
方法一
错误信息 “WslRegisterDistribution failed with error: 0x8007019e” 表明 Windows 子系统用于 Linux 的可选组件未启用。要解决这个问题,你需要手动启用 Windows 子系统用于 Linux 组件。以下是解决方法:
通过 PowerShell 启用 Windows 子系统用于 Linux 组件:
-
打开 PowerShell(管理员权限):按下
Win + X
键,然后选择“Windows PowerShell(管理员)”。 -
运行以下命令来启用 Windows 子系统用于 Linux 组件:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
-
完成后,重新启动计算机以确保更改生效。
-
再次尝试安装 WSL,运行你的安装命令。
如果你在启用组件后仍然遇到问题,请确保你的系统满足安装WSL的要求。如果仍然存在问题,你可以尝试通过官方文档中提供的方法进行故障排除。官方文档链接为 https://aka.ms/wslinstall。
一旦 Windows 子系统用于 Linux 组件已成功启用,你应该能够安装和运行WSL,而不会再遇到这个错误。
方法二
使用PowerShell命令 Enable-WindowsOptionalFeature
也是启用 Windows 子系统用于 Linux 组件的有效方法。这个命令可以代替使用 dism.exe
命令。以下是使用 Enable-WindowsOptionalFeature
命令的示例:
-
打开 PowerShell(管理员权限):按下
Win + X
键,然后选择“Windows PowerShell(管理员)”。 -
运行以下命令以启用 Windows 子系统用于 Linux 组件:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
-
完成后,重新启动计算机以确保更改生效。
此方法与使用 dism.exe
具有相同的效果,它也将启用 Windows 子系统用于 Linux 组件,允许你安装和运行WSL。使用哪种方法取决于你的个人偏好。感谢分享这个替代方法!
重启后再次启动Ubuntu
WslRegisterDistribution failed with error: 0x800701bc
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x800701bc
Error: 0x800701bc WSL 2 ?????????????????? https://aka.ms/wsl2kernelPress any key to continue...
方法一
如果你要在Windows 10家庭版中使用虚拟化技术,有一种受支持的方法是使用Windows Subsystem for Linux 2 (WSL 2),它提供了轻量级的Linux环境,适用于开发和测试。你可以在家庭版中启用WSL 2,而无需执行额外的脚本。
要启用WSL 2,可以按照以下步骤操作:
-
打开 PowerShell 作为管理员。
-
运行以下命令来启用虚拟机平台:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
安装 WSL 2 更新包。下载并安装 WSL 2 Linux 内核更新包,你可以从以下链接下载并运行安装程序:WSL 2 Linux 内核更新包
-
将WSL 2设置为默认版本:
wsl --set-default-version 2
-
安装你选择的Linux发行版,例如Ubuntu,从Microsoft Store或官方网站下载并手动导入。
这样,你可以在Windows 10家庭版中使用WSL 2来运行Linux发行版,而不必担心Hyper-V的许可问题。不过,如果你确实需要Hyper-V,你可以尝试运行你提供的脚本,但请务必谨慎操作并了解可能的许可问题。
方法二(可能有风险)
通过一个批处理文件(Hyper-V.cmd)来在Windows 10家庭版中启用Hyper-V功能。Hyper-V是Windows的虚拟化技术,通常在专业版和企业版中可用,但家庭版通常不支持。
这个脚本似乎尝试启用Hyper-V功能,但在家庭版中使用这个方法需要小心,因为Microsoft可能会进行许可方面的限制。
- win10 家庭中文版没有Hyper-V,这样安装一步搞定
WslRegisterDistribution failed with error: 0x80370102
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x80370102
Error: 0x80370102 ???????????????????Press any key to continue...
你看到的错误消息 “WslRegisterDistribution failed with error: 0x80370102” 与 Windows 子系统用于 Linux (WSL) 安装过程有关。这个错误表示在注册 WSL 发行版时出现了问题。它可能由各种因素引起,例如缺少或损坏的文件、系统配置问题或 Windows 安装问题。
以下是一些可能解决此问题的步骤:
建议先尝试安装 WSL 2 更新包。下载并安装 WSL 2 Linux 内核更新包,你可以从以下链接下载并运行安装程序:WSL 2 Linux 内核更新包
-
**确保 Windows 版本兼容:**确保你运行的是与 WSL 兼容的 Windows 版本。WSL 2 需要 Windows 10 版本 1903 或更高版本。如果你运行较旧的版本,考虑升级 Windows。
-
**启用虚拟化:**确保在你的 BIOS/UEFI 设置中启用了虚拟化。WSL 2 需要硬件虚拟化功能的支持。你可能需要重新启动计算机,访问 BIOS/UEFI 设置并启用虚拟化。
-
**更新 Windows:**确保你的 Windows 安装已安装了最新的更新和补丁。
-
**检查 Hyper-V:**如果你已安装并启用了 Hyper-V,它可能与 WSL 2 冲突。你可以尝试禁用 Hyper-V,或使用 “wsl --set-version” 切换到 WSL 1。要禁用 Hyper-V,你可以使用"控制面板"中的 “打开或关闭 Windows 功能”。
-
**重新安装 WSL:**你可以尝试卸载然后重新安装系统上的 WSL 功能。
-
**修复 WSL:**以管理员身份打开 PowerShell 并运行以下命令:
dism.exe /online /cleanup-image /restorehealth sfc /scannow
这些命令将检查并尝试修复可能导致 WSL 出现问题的系统文件问题。
-
**检查第三方软件:**有时,第三方软件,特别是防病毒软件,可能会干扰 WSL 安装。你可以尝试临时禁用此类软件,看是否解决了问题。
-
**检查损坏文件:**有可能一些 WSL 安装文件已经损坏。尝试删除引发问题的发行版,然后重新安装它。
Ubuntu安装到哪了?
之前的链接用于下载适用于 Windows Subsystem for Linux (WSL) 的 Ubuntu 安装包。在使用这些安装包安装 Ubuntu 时,安装的目录通常位于 Windows 系统中的特定位置。默认情况下,Ubuntu 将安装到 WSL 的默认位置,该位置通常是:
C:\Users\<YourUsername>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
请注意,<YourUsername>
是你的用户帐户名称。如果你选择安装其他 Linux 分发版,安装目录也将位于类似的位置,只是相应的包名和目录名称会有所不同。
在这个目录中,你可以找到安装的 Ubuntu 文件系统。你可以在其中运行和管理 Ubuntu 系统,但请谨慎操作,因为直接编辑文件可能会导致不稳定或损坏系统。在大多数情况下,你应该使用 WSL 提供的终端界面来与安装的 Linux 分发版交互,而不是直接编辑文件系统。
彻底卸载 Ubuntu 或任何其他 Linux 分发版
要彻底卸载 Ubuntu 或任何其他 Linux 分发版,安装到 Windows Subsystem for Linux (WSL) 中的步骤可以包括以下几个步骤:
-
打开 Windows PowerShell 或命令提示符。
-
运行以下命令来列出已安装的 WSL 发行版:
wsl --list
这将显示已安装的 Linux 发行版的名称。
- 运行以下命令来卸载 Ubuntu 或其他特定的 WSL 发行版。请将
<DistributionName>
替换为你要卸载的发行版的名称,例如 “Ubuntu”。
wsl --unregister <DistributionName>
例如,如果要卸载 Ubuntu,命令可能如下所示:
wsl --unregister Ubuntu
-
在卸载过程中,Windows 会提示你确认删除 WSL 发行版。确认后,系统将卸载该发行版。
-
最后,删除 WSL 发行版的文件系统镜像。可以使用以下命令来删除镜像文件:
wsl --unregister <DistributionName>
替换 <DistributionName>
为你要删除的发行版名称。这会删除相应的镜像文件,以确保干净卸载。
以上步骤将卸载 WSL 发行版,并删除相关文件系统镜像,以确保干净卸载。在执行这些步骤之后,你的系统将不再包含该 Linux 发行版的残留部分。
WSL/WSL 2相关指令
要查看是否已经安装了WSL和WSL 2,你可以按照以下步骤操作:
检查WSL已安装的Linux分发版列表:
- 打开Windows PowerShell(管理员权限):按下
Win + X
,然后选择“Windows PowerShell (管理员)”选项。 - 运行以下命令来列出已安装的WSL分发版:
如果此命令返回已安装的Linux分发版列表,那么WSL已经安装。wsl --list
检查WSL已安装的Linux的详细信息:
用于检查 WSL 的状态的命令取决于你是否使用 WSL 1 还是 WSL 2。你可以通过运行以下命令来检查当前的 WSL 版本:
- 打开Windows PowerShell(管理员权限)。
- 运行以下命令来查看WSL和WSL 2的详细信息:
这将显示每个WSL分发版的详细信息,包括其WSL版本。wsl --list --verbose
切换whl版本
wsl --set-default-version 1
wsl --set-default-version 2
Redis
当在Ubuntu中安装Redis,可以按照以下步骤进行操作:
-
打开Ubuntu终端
-
更新包列表:确保您的包列表是最新的,使用以下命令:
sudo apt update
-
安装Redis:使用以下命令安装Redis服务器和客户端:
sudo apt install redis-server redis-tools
-
启动Redis:安装完成后,Redis服务器会自动启动。您可以使用以下命令检查其状态:
sudo service redis-server status
-
连接到Redis:使用以下命令连接到Redis服务器:
redis-cli
现在,您已经成功在Ubuntu上安装了Redis,并可以通过 redis-cli
命令与Redis服务器进行交互。如果需要进行高级配置或使用特定功能,您可以编辑 /etc/redis/redis.conf
文件或参考Redis的官方文档和其他教程。
若未启动
friklogff@DESKTOP-PQCLUS8:~$ sudo service redis-server status
sudo service redis-server status
- redis-server is not running
根据输出,Redis服务器当前没有运行。如果你希望启动Redis服务器,可以使用以下命令:
sudo service redis-server start
这将启动Redis服务器。然后,你可以使用以下命令来检查其状态:
sudo service redis-server status
如果一切正常,你应该会看到Redis服务器正在运行的状态信息。如果Redis服务器启动失败或出现错误消息,请检查配置文件以解决问题。默认情况下,Redis的配置文件通常位于/etc/redis/redis.conf
。
总结
WSL(Windows Subsystem for Linux)是一项强大的功能,允许Windows用户在其操作系统中运行Linux发行版,提供了更灵活的开发和测试环境。本文介绍了如何安装WSL,提供了针对常见问题的解决方案,例如WSL组件未启用或WSL 2错误。此外,我们还解释了如何彻底卸载Linux分发版,以便读者可以轻松地管理其WSL环境。通过本文的指导,用户将能够更好地利用WSL,实现跨平台开发和Linux命令行工具的使用,从而提高其工作效率和开发体验。
在探索Windows中的Linux世界时,WSL是连接两个生态系统的桥梁,使用户能够充分利用Windows和Linux的优势,而无需切换操作系统。无论是开发者还是技术爱好者,WSL都为他们提供了更多的可能性和便利性。
相关文章:

【WSL/WSL 2-Redis】解决Windows无法安装WSL Ubuntu子系统与Redis安装
前言 在现代计算环境中,开发人员和技术爱好者通常需要在不同的操作系统之间切换,以便利用各种工具和应用程序。在这方面,Windows用户可能发现WSL(Windows Subsystem for Linux)是一个强大的工具,它允许他们…...

数据结构(四)--队列及面试常考的算法
一、队列介绍 1、定义 与栈相似,队列是另一种顺序存储元素的线性数据结构。栈与队列的最大差别在于栈是LIFO(后进先出),而队列是FIFO,即先进先出。 2、优缺点及使用场景 优点:先进先出(FIFO&…...

PMIC、电源管理MAX77646ANP、MAX77647AANP、MAX77675AEWE、MAX77847AEWL DC-DC 开关稳压器
一、MAX77646ANP、MAX77647AANP 低IQ SIMO PMIC支持原电池应用的1.8V工作电压 MAX77646/MAX77647为尺寸和效率至关重要的低功耗应用提供电源解决方案。该IC集成单电感多输出(SIMO)降压/升压稳压器,可通过单个电感提供三个可独立编程的电源轨,尽可能地减…...

5W2H分析法:全面思考和解决问题的实用工具
5W2H分析法又叫七问分析法,创于二战中美国陆军兵器修理部。发明者用五个以W开头的英语单词和两个以H开头的英语单词进行设问,发现解决问题的线索,寻找发明思路,进行设计构思,从而搞出新的发明项目。5W2H简单、方便&…...

01 向量基本概念
向量基本概念 向量是什么物理专业学生视角计算机专业学生视角数学家视角 不同视角之间的关系 这是关于3Blue1Brown "线性代数的本质"的学习笔记。 向量是什么 物理专业学生视角 向量是空间中的箭头。向量的长度和方向确定一个向量。只要长度和方向相同,…...

QMS质量检验管理|攻克制造企业质量检验难题,助力企业提质增效
在日益激烈的市场竞争中,对产品质量严格把关,是制造企业提高核心竞争力与品牌价值的关键因素。那如何高效、高质地完成产品质检工作?这就需要企业在工业质检中引进数字化技术加以辅助,进而推动智能制造高质量发展。 蓝库云QMS质量…...

Visual Components Robotics OLP解决方案 北京衡祖
Visual Components 引入了“Visual Components Robotics OLP”的重大升级,合并了制造模拟和机器人离线编程。该解决方案利用 Delfoi Robotics 的技术,提高生产率、减少停机时间并减少浪费。 一、探索下一代离线机器人编程软件 自 1999 年以来࿰…...

React——简便获取经纬度信息
引言 在现代的Web应用程序中,获取用户的地理位置信息是一项常见的需求。通过获取经纬度信息,我们可以为用户提供个性化的服务和定位功能。在本文中,我们将介绍如何在React应用程序中简便地获取用户的经纬度信息,并提供相应的代码…...

如何修改设置360浏览器内核模式
360安全浏览器现有两种内核模式,即“极速模式”和“兼容模式” 极速模式 “极速模式”是以Blink(Webkit)为内核的浏览模式,Blink内核具有更高的网页浏览速度和更好网页渲染效果。但由于少部分网银、政府、税务、办公系统等网站对B…...

spring boot 定时任务@Scheduled(cron = ““)不可用时并且注入失败时——笔记
以下方案是本人使用定时任务时Service注入失败的解决方案 在 Spring Boot 中执行定时任务时,你可以注入并直接调用 Service 中的方法,就像在普通的业务逻辑中一样。 以下是执行定时任务时调用 Service 的步骤: 创建一个 Service 类…...

R语言用jsonlite库写的一个图片爬虫
以下是一个使用R语言和jsonlite库下载图片的程序。首先,我们需要导入jsonlite库和options()函数,然后将代理服务器的主机名和端口号设置为"duoip"和"8000"。接着,我们将URL设置为"https://yun.baidu.com/"&…...

Linux多线程编程- pthread_self()
pthread_self() 函数是 POSIX 线程库的一部分,它提供了一个非常简单的功能:获取当前线程的唯一标识符。这个标识符是 pthread_t 类型的,通常是一个无符号的长整型值,不过具体的类型是由实现定义的,这意味着它可以在不同…...

APM建设踩了哪些坑?去哪儿旅行分布式链路追踪系统实践
一分钟精华速览 分布式链路追踪系统在企业的APM体系中扮演着重要的角色。本文分享了去哪儿旅行构建分布式链路追踪系统的实践经验。从APM整体架构设计入手,讲述了日志收集、Kafka传输和Flink任务处理等环节的性能优化实践和踩坑经验。 同时,作者结合丰…...

ASTM F963-23美国玩具安全新标准发布
新标准发布 2023年10月13日,美国材料与试验协会(ASTM)发布了新版玩具安全标准ASTM F963-23。 主要更新内容 与ASTM F963-17相比,此次更新包括:单独描述了基材重金属元素的豁免情况,更新了邻苯二甲酸酯的管控…...

swift语言下SurfGen库做的爬虫是什么样的 ?
Swift语言并没有内置的爬虫库,但是你可以使用第三方库来实现爬虫功能。其中比较常用的是Alamofire和SwiftyJSON。Alamofire是一个基于Swift语言的HTTP网络库,可以用来发送HTTP请求和接收HTTP响应。而SwiftyJSON则是一个用于处理JSON数据的Swift库&#x…...

Vue纯CSS实现掷色子
效果图: 实现代码 直接利用CSS3动画实现的效果,无js代码。 <template><div class"wrap"><input type"checkbox" id"roll"><label for"roll"><div class"content"><…...

使用vscode开发uniapp项目常用的辅助插件,提升开发效率
为什么不使用hbuilder开发呢?因为hbuilder对ts和vue3语法支持并不友好,而且代码提示不智能,也不能使用最近很流行的coplit和CodeGeex智能提示,所以就换掉hbulider,使用我们熟悉的vscode开发吧。 第一个:un…...

python脚本监听域名证书过期时间,并将通知消息到钉钉
版本一: 执行脚本带上 --dingtalk-webhook和–domains后指定钉钉token和域名 python3 ssl_spirtime.py --dingtalk-webhook https://oapi.dingtalk.com/robot/send?access_tokenavd345324 --domains www.abc1.com www.abc2.com www.abc3.com脚本如下 #!/usr/bin…...

那些看起来高大上的封装函数
什么 ToGray 只支持3通道图像, 让我看看怎么个事 就这么生硬的加了个判断 好家伙 调用了下opencv ,通道数都不判断一下...

go语言 | grpc原理介绍(三)
了解 gRPC 通信模式中的消息流 gRPC 支持四种通信模式,分别是简单 RPC、服务端流式 RPC、客户端流式 RPC 和双向流式 RPC。 简单 RPC 在gRPC中,一个简单的RPC调用遵循请求-响应模型,通常涉及以下几个关键步骤和组件: 请求头&a…...

记一次heapdump泄漏获取服务器权限
文章目录 一、漏洞原因二、漏洞利用三、漏洞进一步利用1、工具下载2、通过关键字查询3、通过配置redis的默认账号和密码进行登录4、添加定时计划任务,进行反弹shell5、成功获取服务器的shell补充四、总结五、免责声明一、漏洞原因 扫描目录发现某个spring框架存在大量泄露信息…...

大疆Livox MID-360安装ROS1/2驱动 Ubuntu20.04
文章目录 一、接线连接二、安装上位机可视化工具三、安装ROS驱动3.1 配置静态IP3.2 安装Livox SDK23.3 安装ROS驱动3.4 驱动 本文介绍如何在Ubuntu20.04中安装大疆Livox MID-360的ROS1/2驱动 一、接线连接 livox航插一分三线,其中航空母头连接激光雷达,…...

Android 重启App
要重启 Android 应用程序,可以使用 PendingIntent 和 AlarmManager 来实现。下面是一种实现方式: fun restartApp(context: Context) {val packageManager context.packageManagerval intent packageManager.getLaunchIntentForPackage(context.packa…...

C语言的前置知识:数据量单位、汇编语言和寄存器
数据量单位 位(bit)是计算机中最小的存储单位,每一位可以存储一个二进制码值的0或1。而字节(byte)则通常是由八个位组成的一个存储单元。在计算机中,字节是最小的可寻址单位,这意味着 CPU 在使…...

【IDEA】在工具栏设置快速创建包和类的图表
页面效果: 操作步骤: 设置 --> 外观与行为 --> 菜单与工具栏 --> 点击 主工具栏 --> 点击 ---- --> 点击 号 --> 添加操作 主菜单 --> 文件 --> 文件打开操作 --> 打开项目操作 --> 新建 --> 往下找 找到 clas…...

int arrayL = sizeof(array) / sizeof(array[0]);
我有一个四个元素的doublearray,这里我会得到4还是5? 在C或C中,使用 sizeof(array) / sizeof(array[0]) 来计算数组的长度是一种常见的方法。但是,这种方法只适用于在同一作用域中声明的数组,而不适用于函数参数传递的…...

FFmpeg——使用Canvas录制视频尚存问题的解决方案
个人简介 👀个人主页: 前端杂货铺 🙋♂️学习方向: 主攻前端方向,正逐渐往全干发展 📃个人状态: 研发工程师,现效力于中国工业软件事业 🚀人生格言: 积跬步…...

css进阶知识点速览
0前言 零基础部分的博客 1选择器进阶 1.1后代选择器 作用:根据html标签的嵌套关系,选择父元素后代中满足条件的元素 选择器语法:选择器1 选择器2 {css} 结果: 在选择器1所找到标签的后代中 注意: 后代包括…...

P2047 [NOI2007] 社交网络
Portal. 观察到数据范围 n ≤ 100 n\leq 100 n≤100,考虑用 Floyd。 在 Floyd 更新最短路的过程中,如果以当前结点为中转点的路径更新过,那么可以累加答案;否则,更新最短路径并重置答案。 统计答案时,枚…...

线性表的顺序存储
1.创建:实质是对data与length的修改 //定义一个线性表 typedef struct {int data[MaxSize];//存储线性表的元素 int length;//线性表的长度 }SqList; //新建一个表 void create(SqList &l){//传入地址才可以对其值进行改变 printf("请输入线性表的长度&…...