目标:掌握 预处理(preprocessing) 的关键能力:字符串化(#)、记号拼接(##)、可变参数宏、do{...}while(0) 惯用法、全括号、无副作用、以及 C11 _Generic 做“类型感知宏”。给你一套可直接抄用的宏模板。1)常量优先用 enumstatic constenum { SZ_PAGE = 4096 }; 编译期常量,参与 …
最新内容
简介当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做 Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump 是“内存快照”,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他处理器和操 …
C++并不禁止析构函数抛出异常,但是这极容易出问题。假设一个类的析构函数抛出异常,现在你要销毁有10个此类对象的链表,就有可能同时抛出10个异常,这种情况下会导致程序结束或其他不确定行为。甚至有时只是一个析构函数抛出异常就会出错。一、怎么不让析构函数抛出异常这里有两个解决方案:主动停止程序和吞下异常:上面的代码演示的就是主动停止程序方案,有时突然结束程序显得 …
导航博客园首页发新随笔发新文章联系订阅管理 进程间通信(五)—信号我会用几篇博客总结一下在Linux中进程之间通信的几种方法,我会把这个开头的摘要部分在这个系列的每篇博客中都打出来进程之间通信的方式管道消息队列信号信号量共享存储区套接字(socket)进程间通信(三)—信号量传送门:http:www.cnblogs.comlenomireip5649792 …
目标:用一套“能复现—能定位—能修复—能预防”的方法体系,把 JS 内存问题从玄学变工程。1)先讲原理但不过度:JSGC 的工作方式1.1 GC 核心思想:可达性(Reachability)GC 不关心“有没有引用计数”,而是看对象是否从根(windowglobal、活动栈、闭包环境、DOM 树)可达。不可达 => 可回收;可达 => 保活(哪怕只是被某个全 …
原 作 者:Craig Buckler 原文链接:https:www.sitepoint.comxmlhttprequest-vs-the-fetch-api-whats-best-for-ajax-in-2019注:本文是一篇译文。XMLHttpRequest 最初是由 1999 年发布的 IE5.0 ActiveX 组件实现的,到目前为止(2019 年 …
在现代前端开发中,Promise 和 asyncawait 已经成为处理异步操作的基石。然而,一个常见的棘手问题是:如何取消一个已经开始的 Promise?比如,用户发起一个数据请求,但在请求完成前又导航到了其他页面;或者用户在一个搜索框中快速输入,我们需要取消前一次的搜索请求,只保留最后一次。在这些场景下,取消一个进行中的 Promise 就显得至关重要。 …
问题引入:在曾经我们学习Linux的经历中,我们也是多次使用信号的。比如:当我们在使用xshell时,在命令行中按Ctrl+c,这个键盘输入产生了一个硬件中断,被操作系统获取,解释成信号,发送给目标前台进程。前台进程因为收到了信号,进而引起进程退出。注意:Ctrl+C 产生的信号只能发给前台进程。一个命令后面加个&可以放到后台运行,这样Shell不必等待进程 …
编写C程序时,如何让程序在正确的时间、以正确的方式结束运行?本文将带你深入探索C语言中的程序终止机制。在C语言的世界里,程序的终止与程序的执行同样重要。一个良好的程序不仅要知道如何完成任务,更要知道如何正确地结束自己。让我们一起来了解C语言中那些控制程序终止的重要函数。程序终止的两种方式在C语言中,程序终止可以分为两种基本方式:正常终止(Normal Ter …
Go语言(golang)的一个很大的优势,就是很容易的开发出网络后台服务,而且性能快,效率高。在开发后端HTTP网络应用服务的时候,我们需要处理很多HTTP的请求访问,比如常见的API服务,我们就要处理很多HTTP请求,然后把处理的信息返回给使用者。对于这类需求,Golang提供了内置的nethttp包帮我们来处理这些HTTP请求,让我们可以比较方便的开发一 …
