当前位置: 首页 > news >正文

C++ 强制类型转化

C++ 提供了四种显式强制类型转换运算符static_castdynamic_castconst_castreinterpret_cast),相比 C 风格的强制转换((类型)表达式),它们更具针对性、可读性和安全性,能让转换意图更清晰,且编译器可提供更严格的检查。

1、static_cast - 静态转换

用于编译器可在编译时确定安全性的转换,不涉及运行时类型检查,是最常用的转换方式。

语法:static_cast<目标类型>(源表达式)

1.1 基本数据类型转换(如数值类型之间的转换)

int a = static_cast<int>(3.14);  // double → int(截断小数)
double b = static_cast<double>(a);  // int → double

1.2 非 const 类型之间的转换(如派生类与基类的向上转型)

class Base {};
class Derived : public Base {};Derived d;
Base* b_ptr = static_cast<Base*>(&d);  // 派生类指针 → 基类指针(向上转型,安全)

1.3 空指针转换为目标类型指针

int* p = static_cast<int*>(nullptr);  // 空指针 → int* 空指针

1.4 显式触发隐式转换

将 void* 转换为具体类型指针

void* void_ptr = new int(10);
int* int_ptr = static_cast<int*>(void_ptr);  // void* → int*(需确保类型匹配)

1.5 危险用法警示

// 危险:不相关指针转换
double* pd = new double(3.14);
int* pi = static_cast<int*>(pd); // 编译错误!static_cast禁止不相关指针转换// 正确做法:使用reinterpret_cast(但需谨慎)
int* pi2 = reinterpret_cast<int*>(pd);// 向下转型(基类 → 派生类)时不检查类型安全性,可能导致未定义行为
Base b;
Derived* d_ptr = static_cast<Derived*>(&b);  // 编译通过,但运行时访问 d_ptr 可能崩溃

2、dynamic_cast - 动态转换

用于多态场景下的类型转换(主要是向下转型),依赖虚函数表(vtable)在运行时检查类型兼容性,是唯一具有运行时检查能力的转换。

语法:dynamic_cast<目标类型>(源表达式)

转换规则:

  • 向上转型(派生类 → 基类)
    与 static_cast 效果相同,总是成功。
  • 向下转型(基类 → 派生类)
    • 若源指针 / 引用实际指向的对象类型与目标类型匹配,则转换成功。
    • 若不匹配:指针转换返回 nullptr,引用转换抛出 std::bad_cast 异常。
class Base { public: virtual ~Base() {} }; // 必须有虚函数!
class Derived : public Base { public: void derivedFunc() {} };Base* bPtr = new Derived; // 实际指向一个Derived对象// 安全的下行转换
Derived* dPtr = dynamic_cast<Derived*>(bPtr);
if (dPtr != nullptr) { // 必须检查是否转换成功!dPtr->derivedFunc(); // 安全调用
}// 对于引用,失败会抛出 std::bad_cast 异常
try {Derived& dRef = dynamic_cast<Derived&>(*bPtr);dRef.derivedFunc();
} catch (const std::bad_cast& e) {std::cerr << "Conversion failed: " << e.what() << std::endl;
}

3、const_cast - 常量转换

专门用于移除或添加变量的 const 或 volatile 属性,仅能用于指针或引用(不能直接转换对象)。

语法:const_cast<目标类型>(源表达式)

功能与用途

  • 移除 const 属性(最常见)。
  • 添加 const 属性(通常没必要,因为可以隐式添加)。

3.1 典型使用场景

用于调用历史遗留函数,这些函数参数不是 const,但你确知不会修改传入的对象。

// 一个古老的、无法修改的库函数
void legacyFunction(char* str) {// 这个函数承诺不会修改str,但参数没写成const char*
}void modernFunction(const char* str) {// legacyFunction(str); // 错误:不能将const char*传递给char*legacyFunction(const_cast<char*>(str)); // 不得已而为之:移除const
}

3.2 绝不能用于修改一个原本就是 const 的对象

const int a = 10;
int* p = const_cast<int*>(&a);
*p = 20;  // 未定义行为!a 是 const 对象,禁止修改

当指针指向的对象本身是非 const,但被 const 指针引用时,可通过 const_cast 临时移除 const 以修改对象

int c = 30;  // 非 const 对象
const int* ptr = &c;  // const 指针指向非 const 对象
int* p = const_cast<int*>(ptr);
*p = 40;  // 合法:c 本身非 const,修改后 c = 40

4、reinterpret_cast - 重新解释转换

最 “暴力” 的转换方式,直接对底层二进制位进行重新解释,不进行类型检查,完全依赖程序员保证转换的安全性。一般编码规范禁止使用

语法:reinterpret_cast<目标类型>(源表达式)

4.1 在不相关类型的指针之间转换

int* iPtr = new int(0x12345678);
char* cPtr = reinterpret_cast<char*>(iPtr); // 将int*强制解释为char*
// 现在可以通过cPtr访问int的各个字节(用于检查内存布局)
for (int i = 0; i < sizeof(int); ++i) {std::cout << std::hex << (int)*(cPtr + i) << " ";
}

4.2 指针和整数之间的转换

int* ptr = ...;
uintptr_t intValue = reinterpret_cast<uintptr_t>(ptr); // 将指针存入整数
int* ptr2 = reinterpret_cast<int*>(intValue);          // 将整数恢复为指针

5、使用规则

  1. 优先使用 static_cast。它是大部分良好定义转换的首选。
  2. 在继承体系中进行向下转换时,优先使用 dynamic_cast 并检查返回值。
  3. 尽量避免使用 const_castreinterpret_cast。如果必须使用,一定要写满注释说明理由,并确保有充分的测试。
  4. 绝对不要使用 C 风格的类型转换 (T)expr。如果你的代码中出现了它,应该思考能否用上述四种之一替换。

6、 常见问题

  1. static_castdynamic_cast 的区别是什么?
  • 检查时机static_cast 是编译时检查,dynamic_cast 是运行时检查。
  • 适用场景static_cast 用于一般转换(如基本类型、向上转型);dynamic_cast 仅用于多态类型的向下转型(需基类有虚函数)。
  • 安全性dynamic_cast 更安全(失败时返回 nullptr 或抛异常);static_cast 向下转型可能导致未定义行为。
  1. 为什么 dynamic_cast 需要基类有虚函数?
    dynamic_cast 的运行时检查依赖虚函数表(vtable):每个含虚函数的类的 vtable 中会存储类型信息(type_info),dynamic_cast 通过对比源对象和目标类型的 type_info 判断转换是否合法。若基类无虚函数,则没有 vtable 和类型信息,无法执行运行时检查,因此编译报错。

  2. const_cast 能修改 const 对象的值吗?
    不能。const_cast 仅能移除指针/引用的 const 属性,但不能改变对象本身的常量性。若对象本身是 const(如 const int a = 10),通过去 const 后的指针修改它会导致未定义行为(可能崩溃、数据错误或编译器优化导致修改无效)。

  3. 什么时候需要用 reinterpret_cast?为什么要尽量避免?
    reinterpret_cast 用于底层二进制位的重新解释(如指针与整数互转、不同类型指针转换),仅在特殊场景(如操作系统内核、硬件交互)中需要。
    需避免的原因:

    • 转换结果依赖平台(不可移植)。
    • 无类型检查,极易导致未定义行为(如访问错误类型的内存)。
  4. C++ 为什么引入四种新的类型转换,而不是继续使用 C 风格的转换?
    主要为了安全性和清晰性。C 风格转换 (T)expr 过于强大且意图模糊,容易隐藏危险的转换。新的四种转换明确了编程意图(是静态转换?还是动态类型检查?还是移除const?),让编译器能进行更严格的检查,也让代码更容易理解和维护。

  5. 如果 dynamic_cast 对指针转换失败,它会返回什么?对引用呢?
    对指针类型使用 dynamic_cast 失败时,它会返回 nullptr
    对引用类型使用失败时,它会抛出 std::bad_cast 异常。因为不存在“空引用”这个概念。

相关文章:

C++ 强制类型转化

C++ 提供了四种显式强制类型转换运算符(static_cast、dynamic_cast、const_cast、reinterpret_cast),相比 C 风格的强制转换((类型)表达式),它们更具针对性、可读性和安全性,能让转换意图更清晰,且编译器可提供更严格的检查。 1、static_cast - 静态转换 用于编译器可在…...

Linux shred 命令:安全擦除文件指南

Linux shred 命令:安全擦除文件指南Linux 中的 shred 命令是一个用于​​安全删除文件​​的工具,它通过多次覆盖文件内容来确保数据难以恢复,非常适合处理敏感信息。下面我将为你详细解释这个命令的用法、注意事项以及典型应用场景。 🛡️ Linux shred 命令:安全擦除文件…...

研究生化学英文题库数据集:300万条LaTeX格式AI训练资源,覆盖有机化学物理化学无机化学分析化学,用于智能评估系统、个性化学习平台、化学知识图谱构建、自动化工具开发、深度学习模型

引言与背景 在当今人工智能技术飞速发展的时代,专业化学教育领域正面临着前所未有的变革机遇。化学作为一门基础性、应用性极强的学科,其教育质量的提升直接关系到国家科技创新能力和人才培养水平。然而,传统的化学教育模式在个性化学习、智能评估和知识体系构建方面仍存在诸…...

lvm硬盘分区与不分区优缺点

一、不分区,直接用整块硬盘创建 PV pvcreate /dev/sdb vgcreate myvg /dev/sdb 优点:简单快捷,少了一层分区表的管理。硬盘整个容量都能交给 LVM 管理,空间利用最大化。避免分区表损坏导致 LVM 无法识别的问题。缺点:硬盘完全交由 LVM 使用,不能轻易与其他用途(比如放一…...

中电金信能碳虚拟电厂数智化平台破局“双碳”难题

在国家“双碳”目标持续推进的背景下,零碳园区已成为实现碳达峰碳中和(“双碳”)的重要抓手。2023年《国家碳达峰试点建设方案》提出选取100个典型城市和园区试点;2024年中央经济工作会议首次提出建设一批“零碳园区”;2025年3月政府工作报告将“零碳园区”建设纳入年度重…...

充分验证用户需求和商业价值,是软件创业者首要解决的问题

引言 最近常混迹于各类创业和技术圈子,看到很多不错的产品,但痛苦的是,你几乎能预料到他们大部分都会很快陨落,这引起了我的思考。 软件创业的目的 软件创业驱动方式无非三种:一个兴趣驱动、二是使命感或成就感驱动,三是商业驱动。三者虽有不同,但其中有一个目的都是一样…...

国产DevOps工具链崛起:Gitee如何赋能企业数字化转型

国产DevOps工具链崛起:Gitee如何赋能企业数字化转型 在数字化转型的浪潮中,中国企业正面临前所未有的技术升级压力。随着国际形势变化和国内政策导向,构建自主可控的DevOps工具链已成为企业技术决策者的战略选择。Gitee作为国内领先的代码托管与DevOps平台,凭借其本地化服务…...

milvus创建一个用户管理多个库

1.创建用户export CLUSTER_ENDPOINT="http://localhost:19530" export TOKEN="root:Milvus"curl --request POST \ --url "${CLUSTER_ENDPOINT}/v2/vectordb/users/create" \ --header "Authorization: Bearer ${TOKEN}" \ --header &…...

为什么ceph新添加的硬盘会自动变为osd

您好!这是一个非常好的问题,也是 Ceph 运维中一个关键的特性。 根据您图片中的信息和您描述的现象(新硬盘会自动变为 OSD),​​根本原因在于 Ceph 集群(特别是 cephadm)的“自动化运维(Orchestrator)”功能默认是开启的,并且它有一个默认策略:自动识别和利用所有“可…...

Zabbix Proxy 技术实践与运维思考

在分布式监控体系中,Zabbix Proxy 是一个常被忽视但极具价值的组件。相比单点的 Zabbix Server,它更像是一座“前哨站”:在业务网络的前沿收集监控数据、缓存事件,并将结果按需汇聚到中心。本文将结合实际运维案例,深入探讨 Zabbix Proxy 的定位、部署要点与常见问题。 一…...

OF SF CF ZF 的判断方式以及例子

进位/借位标志CF,最高位有进位/错位时CF=1 零标志ZF,运算结果为0时,ZF=1 符号标志SF,运算结果为负,SF=1 溢出标志OF,运算结果有溢出,OF=1 OF(溢出)的判断: 二进制相加后,最高位与次高位异或。 例如 \[FFE8H +7FE6H=7FCEH \]\[1111 1111 1110 1000 +0111 1111 1110 0…...

2025年30个CRM系统盘点:哪款CRM系统适合你的企业? - SaaS软件

在数字化转型加速的2025年,客户关系管理(CRM)系统已成为企业提升竞争力的核心引擎。根据最新市场数据,全球CRM市场规模已突破1500亿美元,年复合增长率达15.3%,其中中国市场以28%的增速领跑全球。面对日益复杂的商业环境和客户需求,选择一款适合企业特性的CRM系统,已成为关…...

TSN Qav测试实践

1.前言我们在以往的文章中介绍了TSN相关的各个内容,包括《TSN(时间敏感网络)纯干货分享》、《TSN(Time-Sensitive Networking)时间敏感网络 协议导读:时间同步 | 延时 | 802.1Qav | 802.1Qch | 802.1Qbv | 802.1Qbu》、《基于TSN 802.1AS协议的时间同步分析(7种延时,1次…...

adobe illustrator中生成连续直角线段

001、工具栏选矩形工具 002、绘制一个矩形 003、鼠标切换到这里 004、 鼠标以横向拖动的方式选中一个边 005、键盘delete健删除 006、同样的方法删除下边这条边 。...

多重分形去趋势交叉相关性分析

多重分形去趋势交叉相关性分析(Multifractal Detrended Cross-Correlation Analysis, MF-DCCA) 1. 核心概念与理解 要理解MF-DCCA,我们最好将其拆解为几个部分:交叉相关性分析 (Cross-Correlation Analysis): 研究两个不同时间序列 \(x(i)\) 和 \(y(i)\) 之间在不同时间滞…...

智启燃气新未来丨众智鸿图精彩亮相2025燃气运营与安全研讨会 - 教程

智启燃气新未来丨众智鸿图精彩亮相2025燃气运营与安全研讨会 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New…...

燕千云ITR平台引领服务流管理革命,构建企业客户服务智慧生态

燕千云ITR平台提出服务流作为企业第四大管理命脉,通过智能化解决方案重塑客户服务价值链。该平台整合多渠道受理、三线协同支持及AI知识沉淀三大核心功能,实现从被动响应到主动价值创造的转变。 当企业对资金流、物流、信息流的管理已成标配,决定未来竞争力的"第四大命…...

WPF 容器尺寸行为总结

WPF 容器尺寸行为总结 在 WPF 中,布局容器的尺寸来源可以分为三类:一类:尺寸主要取决于 父容器的约束 → “父大则大,父小则小” 一类:尺寸主要取决于 子元素的大小 → “子大则大,子小则小” 一类:尺寸基本固定,不跟随父或子变化📌 常见容器的尺寸行为对比容器 尺寸…...

在adobe illustrator中如何插入大于、小于号

001、1-4步骤 002、double click 。003、 效果 。...

三分钟了解流量卡的选择

选一张好用又省心的流量卡,信号是根本,但背后还有几个关键细节——做好功课再办卡,不花冤枉钱!1️⃣ 信号质量是核心基础中国移动用户数最多(截至2025年3月末:9.83亿户),电信4.2亿户,联通4.81亿户。用户多通常代表基站更多、覆盖更好,尤其是在偏远或室内场景优势更明…...

SARIMA算法

SARIMA模型 SARIMA模型,全称为季节性自回归积分滑动平均模型(Seasonal Autoregressive Integrated Moving Average Model),是时间序列分析中的一种重要模型,用于处理具有明显季节性特征的数据。它在ARIMA模型的基础上,增加了季节性因素的考量,使得模型能够更好地捕捉和预…...

【IEEE出版|EI检索稳定】第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)

CBASE 2025旨在汇聚全球云计算、大数据、软件工程等计算机相关领域的顶尖学者与专业人士,打造一个高水平、国际化的学术交流平台,共同探讨最新研究进展与发展趋势。会议诚挚欢迎云计算、大数据、软件工程、网络安全、人工智能、计算机视觉、机器学习、智能计算等方向的专家学…...

Gitee推出革命性MCP Server:AI深度参与开发全流程 开启智能协作新时代

Gitee推出革命性MCP Server:AI深度参与开发全流程 开启智能协作新时代 在人工智能技术快速发展的当下,Gitee迈出了划时代的一步——正式发布官方MCP Server,将AI助手深度整合到软件开发全生命周期中。这一创新举措标志着代码托管平台从单纯的版本管理工具向智能开发平台的战…...

用机器语言实现循环

一般情况下实现循环 int result=0; for (int i=0;i<=100;i++){result +=1; }mov eax,0 #用eax保存result,初始值为0 mov edx,1 #用edx保存i,初始值为1 cmp edx,100 #比较i和100 if(i>100)如果大于一百就直接跳过 jg L2 #如果i>100跳转到L2 goto l2 L1: #循环主体…...

取证 - voasem

分类 内存取证 经常利用volatility分析取证文件后缀 .raw、.vmem、.img 常用命令(imageinfo,pslist,dumpfiles,memdump) 可疑的进程(notepad,cmd) 和磁盘取证结合起来考察 了解部分操作系统原理 常见文件后缀dmg,img命令 python3 vol.py -f [取证文件] 插件可以使用 -h…...

django对接drf-spectacular替代swagger

django对接drf-spectacular替代swagger 1.1、安装drf-spectacular pip install drf-spectacular pip install django-restframework1.2 配置 Django 设置 # settings.pyINSTALLED_APPS = [ # ... drf_spectacular, # 添加此项 rest_framework, # 确保 DRF 已添加 # ... ]REST_F…...

可画

https://www.canva.cn/...

Symbol VBRK: Invalid data type u SAP 事务成功新号码获取到 但是提交后提示失败如何处理

前几天用户提了个错误问题 Symbol "VBRK": Invalid data type "u" 提示说发票创建车工但是离开的时候报错 分析问题可能 增强失败 ST22检查没有讯息 今天经过更老的老师傅提示 SM14查看可能事务回滚了 赶紧查看了下 有错 点击 DEBUG发现是发票创建成功以…...

Oracle 19c asm单机OPatch补丁报错checkSystemCommandAvailable failed.

Oracle 19c asm单机OPatch补丁报错"checkSystemCommandAvailable" failed.一、OPatch Conflict Check As the Grid home user: % $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir <UNZIPPED_PATCH_LOCATION>/36916690/3691259…...

three.js中怎么加载 .gltf/glb格式 文件

3D编辑器格式 用于特定应用程序(主要是3D编辑器):. .blend (Blender), .max (3d Studio Max), .mb and .ma (Maya), etc... 交换格式 有.OBJ, .DAE (Collada), .FBX.等格式。它们被设计出来用于3D编辑器之间交换信息的。因此,它们通常比所需的大得多(内含3D编辑器内所需要的…...

ollama如何安装使用

Ollama 是目前最流行的本地大语言模型(LLM)运行和管理的工具。它让下载、运行和体验各种开源模型(如 Llama、Mistral、Gemma 等)变得极其简单。 下面是从安装到使用的完整指南。一、安装 Ollama Ollama 支持 macOS、Linux 和 Windows(预览版)。 1. macOS方式一(推荐):…...

【SPIE独立出版|连续多年EI稳定检索】第七届地球科学与遥感测绘国际学术会议(GRSM 2025)

为交流近年来国内外在地球、地理科学和遥感测绘领域的理论、技术和应用的最新进展,展示最新成果,第七届地球科学与遥感测绘国际学术会议将于2025年10月17-19日在中国-乌鲁木齐召开,GRSM 2025旨在为从事地球科学和遥感测绘领域的专家学者、工程技术人员、技术研发人员提供一个…...

手把手教你实现C++高性能内存池,相比 malloc 性能提升7倍!

大家好,我是小康。 写在前面 你知道吗?在高并发场景下,频繁的malloc和free操作就像是程序的"阿喀琉斯之踵",轻则拖慢系统响应,重则直接把服务器拖垮。 最近我从0到1实现了一个高性能内存池,经过严格的压测验证,在8B到2048B的分配释放场景下,性能相比传统的ma…...

LDPC 码 BP 算法性能研究

1. 要点来源:NASA 技术报告 + IEEE 802.16e 标准矩阵 算法:经典 Belief-Propagation(BP)迭代解码 + 最小和(MS)变体 性能:BER vs Eb/N0、迭代次数、码长/码率影响、BP vs MS 对比 输出:BER 曲线图、迭代收敛图、误码位置分布2. 结构 LDPC_BP_Study/ ├── main_…...

内外网文件传输方式有哪些:从传统方案到专业系统的全面解析!

在数字化时代,企业数据流通需求日益增长,许多企业为保障核心数据安全实施网络隔离,由此催生了内外网文件传输的高频场景。内外网文件传输指在企业内部网络与外部网络(或不同安全域隔离网络)之间,实现文件数据流通的行为,其核心诉求是在突破网络连接限制的同时,兼顾安全…...

实用指南:DeerFlow 实践:华为IPD流程的评审智能体设计

实用指南:DeerFlow 实践:华为IPD流程的评审智能体设计pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", mon…...

py之补环境代理脚本

function getEnvs(proxyObjs) {for (let i = 0; i < proxyObjs.length; i++) {const handler = `{get: function(target, property, receiver) {console.log("方法:", "get ", "对象:", "${proxyObjs[i]}", " 属性:", …...

Python psutil模块

一、简介psutil(Process and System Utilities)是Python中最强大的系统监控和进程管理库之一。它提供了跨平台的系统信息获取接口,能够轻松获取系统的CPU、内存、磁盘、网络等硬件信息,以及进程管理、系统监控等功能。无论是开发运维工具、系统监控程序,还是性能分析应用,…...

跨网文件传输工具选择要点是什么?

内容概要 在选择跨网文件传输工具时,企业面临着诸多考量。本文旨在全面剖析“跨网文件传输工具如何选择”的关键要素,特别是聚焦于像Ftrans Ferry跨网文件安全交换系统这样的专业解决方案。以下将从安全性、功能特性、易用性及扩展性四大维度出发,通过具体分析和实例,为您提…...

下半年业绩冲刺,12个效率工具帮你提速!

三季度收尾在即,距离 2025 年结束只剩 3 个月,你的业绩目标还差多少? 如果进度滞后,四季度的冲刺就得靠 “巧劲”—— 别只拼时间,多借工具的力。就像我一位朋友,刚工作时同事还在手写记录、靠电话找信息,他早早用电脑打字、上网查资料,效率直接领先一截。古人说 “君子…...

AUTOSAR的MPU内存保护

AUTOSAR的MPU内存保护Q:How can I configure MPU(Memory Protection Unit) for an OS_Task in Vector AUTOSAR Conguration Tool? A:For a configured task, you configure OsTaskMemoryProtectionIdentifier to specify a memory protection identifier for the task. you …...

AI赋能CRM:纷享销客智能图像提升终端运营效率

在消费品行业竞争日益白热化的当下,终端已成为品牌竞争的核心战场。门店陈列是否规范、数据是否真实、执行是否合规,让诸多企业陷入“看不见、管不清、控不住”的终端管理困境。 面对这一核心痛点,纷享销客推出全新升级的纷享 AI 图像智能,以 AI 技术重新定义终端管理模式。…...

【linux命令】网卡命令 ①

网卡命令 ifup / ifdown功能:启用或关闭网络接口。 依赖配置文件:在 RHEL/CentOS 系统,读取 /etc/sysconfig/network-scripts/ifcfg-*。用法: ifup eth0 # 启用 eth0 ifdown eth0 # 关闭 eth0限制:如果没有写配置文件,会提示 not configured,所以更偏向于系统初…...

一款基于 .NET 开源美观、功能丰富的串口调试工具

前言 今天大姚给大家分享一款基于 .NET 开源(GPL-3.0 license)、美观、流畅、高效、功能丰富的串口调试工具:SuperCom。 工具介绍 SuperCom 是一款基于 .NET 开源(GPL-3.0 license)、美观、流畅、高效、功能丰富的串口调试工具,主要用于 Window 串口日志的采集、存储、可…...

麒麟系统中docker常用命令

检查 docker 服务是否已启动 sudo systemctl status dockersudo systemctl start docker # 启动 sudo systemctl enable docker # 设置开机自启 sudo systemctl restart docker #重启docker查看 docker 镜像和容器docker images # 列出本地所有镜像 docker…...

2015年7月微软安全更新深度解析:SQL Server、IE及系统漏洞修复

微软2015年7月发布14项安全更新,含4项紧急补丁,涉及SQL Server远程代码执行、IE浏览器漏洞、Hyper-V虚拟化风险等关键技术领域,同时提供Windows Server 2003最终安全更新和恶意软件清除工具增强。2015年7月安全更新概要 2015年7月15日(日本时间),微软发布14项新安全公告(…...

国产传输软件解决方案厂商优选指南

内容概要 在当今数字化时代,选择合适的国产传输软件解决方案厂商对于企业的信息安全与业务效率至关重要。众多厂商中,国产传输软件解决方案厂商以其专业实力脱颖而出,其中Ftrans SFT文件安全传输系统‌备受瞩目。本指南旨在通过深入分析厂商的全面适配信创生态能力、解决方案…...

安卓方程式计算器HiPER Calc PRO v11.2.7 高级版

HiPER Calc Pro(原应用名称HiPER Scientific Calculator高级版),一款收费非常好用且无广告功能强大的方程式图形计算器,分数计算器,代数计算器,矩阵计算器,具备完整图形、算术方程式、表格、常数、函数强大功能。它多包含100位有效数字和9位小数,支持检测重复的小数,并…...

.NET 10 是微软 AI 战略的技术承重墙

微软于2025年1月成立的新部门 CoreAI - Platform and Tools(简称CoreAI),是其AI战略升级的核心举措,旨在整合内部资源、加速AI基础设施与工具开发,推动“以模型为中心”的应用变革。CoreAI是微软AI战略的“中枢神经”,通过整合开发工具、云平台与研究资源,构建覆盖全场景…...

在Oracle中,如何彻底停止expdp进程?

许多同事在使用expdp命令时,不小心按了CTRL+C组合键,然后又输入exit命令(或者网络中断等异常现象),导致expdp进程不存在,但Oracle数据库的会话仍存在,所以dmp文件也一直在增长。在这种情况下的处理办法如下所示: 1、检查expdp进程是否还在 ps -ef | grep expdp 若存在,…...