网站备案需要具备什么wordpress 元描述

news/2025/9/22 23:11:25/文章来源:
网站备案需要具备什么,wordpress 元描述,保定 营销型网站建设,龙岗建网站公司文章目录 1、写时拷贝2、进程终止2.1 进程退出场景2.1.1 退出码2.1.2 错误码错误码 vs 退出码2.1.3 代码异常终止引入 2.2 进程常见退出方法2.2.1 exit函数2.2.2 _exit函数 本片我们主要来讲进程控制#xff0c;讲之前我们先把写时拷贝理清#xff0c;然后再开始讲进程控制。… 文章目录 1、写时拷贝2、进程终止2.1 进程退出场景2.1.1 退出码2.1.2 错误码错误码 vs 退出码2.1.3 代码异常终止引入 2.2 进程常见退出方法2.2.1 exit函数2.2.2 _exit函数 本片我们主要来讲进程控制讲之前我们先把写时拷贝理清然后再开始讲进程控制。 1、写时拷贝 我们第一篇进程文章中讲到了系统接口fork()创建子进程最后我们提了五个问题第五个问题如何理解同一个id变量怎么会有不同的值 写时拷贝将为你解答该问题。记不清的伙伴点这里回顾那篇文章 通常父子代码共享父子在不写入时数据也是共享的当任意一方试图写入便以写时拷贝的方式各自一份副本。具体见下图 当父进程创建子进程之后子进程的页表是拷贝父进程的但子进程要在数据段进行写入(代码段不支持修改)就需要重新申请空间将原数据拷贝后再做写入我们并不是将整块数据进行改写的可能只是修改部分数据并修改页表这部分工作是由操作系统做的。 但是该工作是需要时机的操作系统并不知道你什么时候是要做写入的。 我们先说一个**结论**父进程创建子进程的时候首先将自己的读写权限改为只读然后再创建子进程。 用户是不知道的用户将来可能会对数据权限为读写代码段是只读 进行写入此时页表的转换会因为权限问题出错这时操作系统就接入了。但是出错也分真假 真出错。代码段是不可以写入的但是我们修改的区域在code_start~code_end(代码区起始结束区域)这时就是越界/真出错。假出错。对数据区的写入数据区是可以读写的只是我们页表中改成了只读。这样的不是出错是触发进行重新申请内存拷贝内容的策略机制。 我们终于明白了子进程拷贝下父进程的页表后将数据对应的页表条目权限改为只读通过让操作系统触发异常的方式让操作系统帮我们进行写时拷贝的完成后再把对应的页表条目改为读写没有写入的依旧是只读。 2、进程终止 我们先来提出一个 问题我们C语言代码main函数最后都有一个return 0返回0时给谁返回呢 main函数也是被调用的所以注定谁调用就给谁返回。我们写一段代码来看看 #include stdio.hint main() {return 10; }我们main函数中什么都不写直接返回值为10。 当编译运行后它的父进程是bash会将返回值交给父进程用指令echo $?获取刚刚的结果。 打印出来这是现象。 是环境变量保存的是最近一个子进程执行完毕的退出码。 第二次查看退出码为0是因为上一个echo执行是成功的0代表了成功。 由此我们展开下面的话题 2.1 进程退出场景 代码运行完毕结果正确代码运行完毕结果不正确代码异常终止 2.1.1 退出码 在多进程环境中我们创建子进程就是为了帮我们去做事这里“我们”是父进程子进程事做的怎么样父进程是需要知道的。在main函数中返回值0代表正确非0代表错误父进程就是依靠返回值来判断是否正确的做完了任务。 当返回0正确大家不会关心这个过程但是返回非0意味着错误我们最想知道的是错误的原因是什么。所以我们可以用不同的数字表示不同的原因但是不便于人阅读所以我们需要一些能够将数字转化成错误码的字符串描述方案。C语言给我们有提供一批接口我们也可以自定义一批我们自己的错误码与错误信息把不同数字转化成不同出错原因的接口 我们写一段代码来打印一下所有的退出码与对应的信息 #include stdio.h #include string.hint main() {for(int i 0; i 200; i){printf(%d: %s\n, i, strerror(i));}return 0; }这就是退出码不同的退出码代表不同的出错原因。 我们来举例子看一下 退出码是2错误信息描述是没有这样的文件或目录。跟我们上面查看的退出码以及对应信息是匹配的。 结论main函数的退出码是可以被父进程获取的用来判断子进程的运行结果。 2.1.2 错误码 C语言还有一个错误码errno我们下面来学一下看看有什么不同 我们先写一个代码测试一下 #include stdio.h #include string.h #include errno.hint main() {printf(before: %d\n, errno);FILE* fp fopen(./log.txt, r);printf(after: %d, error string: %s\n, errno, strerror(errno));return 0; }我们当前路径下是不存在log.txt文件的以读的方式打开肯定是错误的我们打开前输出一次打开后输出一次。 这说明错误码会在调用接口的时候被设置。 错误码 vs 退出码 错误码通常是衡量一个库函数或者是一个系统调用(Linux内核也是用C语言写的所以它也可以访问errno)函数的调用情况。退出码通常是一个进程退出的时候他的退出结果。相同点当失败时用来衡量 函数/进程 出错时的出错详细原因。 当我们写的代码有多个系统接口和库函数我们可以把退出码和错误码设置成一致 #include stdio.h #include string.h #include errno.hint main() {int ret 0;printf(before: %d\n, errno);FILE* fp fopen(./log.txt, r);if(NULL fp){printf(after: %d, error string: %s\n, errno, strerror(errno));ret errno;}return ret; }strerror()函数可以将错误码转化成错误信息。 错误信息一输出用户就知道是哪出错了echo $? 输出的退出码父进程bash也就知道了。 2.1.3 代码异常终止引入 代码异常终止一般代码都没跑完退出码也就没意义了。 我们举两个异常的例子 #include stdio.h #include string.h #include errno.hint main() {printf(before: %d\n, errno);FILE* fp fopen(./log.txt, r);if(NULL fp){printf(after: %d, error string: %s\n, errno, strerror(errno));}int a 10;a / 0; // 除0错误return 0; }#include stdio.h #include string.h #include errno.hint main() {printf(before: %d\n, errno);FILE* fp fopen(./log.txt, r);if(NULL fp){printf(after: %d, error string: %s\n, errno, strerror(errno));}int* ptr NULL;*ptr 10; // 野指针return 0; }野指针一般是段错误。 代码跑起来之后就是进程出问题是进程异常了异常后它就不跑了操作系统管理的进程其实是操作系统把进程杀掉了通过发送信号的方式杀掉的。 我们查看一下信号 可以看到SIG前缀是统一的我们刚才的两个错误分别可以转换为8号与11号信号FPE代表Floating point exceptionSEGV代表Segmentation fault。 我们再来测试一下看看其他的信号可不可以杀掉不是对应问题的进程 #include stdio.h #include sys/types.h #include unistd.hint main() {while(1){printf(I am a normal process: %d\n, getpid());}return 0; }我们发现其实代码并没有错误但是用户用的8号信号杀掉的进程所以显示的就是8号所对应的异常信息。 结论进程出异常异常信息会被操作系统检测出来进而转换为信号然后杀掉进程。 最后子进程把父进程交给的任务完成的怎么样只要守好退出码和信号编号为0就是正确因为错误码从1开始的两个数字就可以很好的监督任务的完成程度。 2.2 进程常见退出方法 2.2.1 exit函数 我们先来查看一下exit怎么使用 结论参数是进程的退出码类似于main函数的return n。 了解了使用方法我们来写一段代码试试 #include stdio.h #include unistd.h #include stdlib.hint main() {printf(I am a process, pid: %d, ppid:%d\n, getpid(), getppid());exit(12); // 参数是进程的退出码类似于main函数的return n//return 0; }我们再来看一个场景 #include stdio.h #include unistd.h #include stdlib.hint func() {printf(call func function done!\n);// 任意地点调用exit表示进程退出不进行后续执行exit(21); }int main() {func();printf(I am a process, pid: %d, ppid:%d\n, getpid(), getppid());// 参数是进程的退出码类似于main函数的return nexit(12);//return 0; }结论任意地点调用exit表示进程退出不进行后续执行。 我们可以在验证一下 #include stdio.h #include unistd.h #include stdlib.hint func() {printf(call func function done!\n);// 任意地点调用exit表示进程退出不进行后续执行exit(21); }int main() {exit(31);func();printf(I am a process, pid: %d, ppid:%d\n, getpid(), getppid());// 参数是进程的退出码类似于main函数的return nexit(12);//return 0; }经过这次的验证说明我们得出的结论是正确的。 2.2.2 _exit函数 依旧先查看怎么使用 我们来使用一下试试 #include stdio.h #include stdlib.hint func() {printf(call func function done!\n);return 11; }int main() {func();printf(I am a process, pid: %d, ppid:%d\n, getpid(), getppid());// 参数是进程的退出码类似于main函数的return nexit(12);//return 0; }我们发现和exit的现象是一样的。 我们再来看看 #include stdio.h #include unistd.hint func() {printf(call func function done!\n);//return 11;// 任意地点调用exit表示进程退出不进行后续执行_exit(21); }int main() {func();printf(I am a process, pid: %d, ppid:%d\n, getpid(), getppid());// 参数是进程的退出码类似于main函数的return n//_exit(12);//return 0; }我们看到_exit和exit 它两表现出的结果是一致的但是这并不能说明它两没有区别 为了让大家看到不一致性我们继续写代码来观察 #include stdio.h #include stdlib.hint main() {printf(you can see me!);sleep(3);exit(1); }我们打印的字符串没有\n因为缓冲区的原因字符串不会立即刷新出来在进程退出后exit对缓冲区强制刷新才将字符串打印在屏幕上 我们这次改为_exit来试试 #include stdio.h #include unistd.hint main() {printf(you can see me!\n);sleep(3);_exit(1); }我们发现_exit函数并不会在进程退出时对缓冲区做强制刷新 结论 exit是库函数3号手册_exit是系统调用2号手册exit终止进程的时候会自动刷新缓冲区。_exit终止进程的时候不会自动刷新缓冲区直接将数据扔掉了。我们目前知道的缓冲区绝对不在操作系统内部具体的后面再详谈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910700.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文具电子商务网站开发内容哈尔滨网站备案手续

应用架构与可观测技术演进历程 在软件开发早期,单体应用架构因其结构简单,便于测试和部署,得到了广泛的应用,对应的监控诊断技术主要是基于日志和日志关键词的指标监控。随着软件复杂度的不断提升,单体应用架构逐步向分…

购物网站建设基本流程树状图大连网站建设设计公司哪家好

深度学习模型种类繁多,可以根据任务类型和应用场景进行分类。以下是主要模型类型的详细介绍,每种模型包含了其特点、功能、代表性模型,以及常见应用。 1. 分类模型 分类模型是深度学习中最基本也是最广泛应用的模型类型,其目标是…

使用python读取windows日志表

在windows系统中,注册表 是系统定义的数据库,应用程序和系统组件在其中存储和检索配置数据。 注册表是一个分层数据库,其中包含对 Windows本身以及Windows上运行的应用程序和服务至关重要的数据。 因此我们还是不好…

西安市免费做网站站长统计幸福宝下载

引言 在当前计算机科学领域中,保护软件代码的安全性和隐私性变得愈发重要。为了防止黑客攻击和恶意软件分析,开发人员采用各种技术来混淆和加密其代码,其中包括JS混淆技术。本文将介绍JS混淆技术的原理和应用,并提供一些相关的加密…

网站建设方案对比分析社区团购最新模式

1.Python2.webservice3.requirejs4.idea5.webService6.redis7.doubble8.mongDB9.zookper 大数据学习曲线:课程一、大数据运维之Linux基础课程二、大数据开发核心技术-Hadoop 2.x从入门到精通课程三、大数据开发核心技术-大数据仓库Hive精讲课程四、大数据协作框架-S…

建设厅八大员报名网站免费企业网站源码

跳跃游戏 给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。在这里插入图片…

建设银行甘肃分行网站企业微信app下载安装官网

CentOS 安装nginx 安装使用的是配置nginx官网yum仓库安装 同时适用于Red Hat Enterprise Linux 及其衍生产品,例如 CentOS、Oracle Linux、Rocky Linux、AlmaLinux 如想使用压缩包解压方式安装请自行百度 注:安装全程使用非root用户 且 该用户已有sudo权…

佛山营销型网站建设公司第三方网站开发优缺点

YUM 功能 软件包安装&#xff1a; 通过yum命令安装软件包。例如&#xff0c;安装一个名为 example-package 的软件包 yum install example-package更新包 检查更新&#xff1a; 检查可用更新&#xff1a; sudo yum check-update <package_name>软件包更新&#xff1a; y…

万网官方网站浙江省建设工程监理管理协会网站

题目描述 最近米咔买了n个苹果和m个香蕉&#xff0c;他每天可以选择吃掉一个苹果和一个香蕉&#xff08;必须都吃一个&#xff0c;即如果其中一种水果的数量为0&#xff0c;则他不能进行这个操作&#xff09;&#xff0c;或者使用魔法将某一种水果的数量翻倍。 现在米咔想吃西…

宿州产品网站建设网站开发合同书

本文是LLM系列文章&#xff0c;针对《Meta Semantic Template for Evaluation of Large Language Models》的翻译。 大型语言模型评估的元语义模板 摘要1 引言2 相关工作3 方法4 实验5 结论 摘要 大型语言模型(llm)是否真正理解语言的语义&#xff0c;或者只是记住训练数据?…

开机RAM分析调试SOP

思维导图 数据来源 内存分解对比项一、硬件保留内存 二、MemFree剩余物理内存 三、MemAvailable剩余可用内存Kernel占用内存 用户空间占用内存 思维导图 数据来源/proc/meminfo 内存状态信息 dumpsys memin…

9.20 模拟赛 T4

题意:有 \(n\) 个点,每个点有四个属性 \(a_i,b_i,c_i,v_i\)。现在要在这 \(n\) 个点之间连无向边。要求:\(i\) 的度数至少为 \(a_i\)。 \(i\) 的所有邻居 \(j\) 的 \(v_j\),要么都小于等于 \(v_i\),要么都大于等于…

建设网站的题目无实体店营业执照申请

网站优化搜索引擎与关键词 人们不应该高估搜索引擎的智商。这不利于seo的研究&#xff0c;事实上&#xff0c;搜索引擎是非常愚蠢的&#xff0c;让我们举一个非常简单的例子&#xff0c;你在搜索引擎中输入“教师”这个词&#xff0c;搜索引擎就会给出一个准确的搜索列表。我们…

厦门网站改版网络营销的成功案例

目标 知道GoogLeNet网络结构的特点能够利用GoogLeNet完成图像分类 一、开发背景 GoogLeNet在2014年由Google团队提出&#xff0c; 斩获当年ImageNet(ILSVRC14)竞赛中Classification Task (分类任务) 第一名&#xff0c;VGG获得了第二名&#xff0c;为了向“LeNet”致敬&#x…

怎么建设网站做一家网站

文章目录 一、机器学习是什么&#xff1f;二、模型训练YouTube流量预测1. 先写一个具有未知参数的函数&#xff08;Function&#xff09;2. 定义损失&#xff08;从训练数据进行计算&#xff09;3.最优化4.结果分析 Back to framework1.带有未知数的函数&#xff1a;2.定义损失…

网页转向网站wordpress交易系统

之前写了个1.0版本&#xff0c;由于太局限&#xff0c;需要用到笔记本才能操作&#xff0c;很多车友反馈不方便。特此出个手机版教程&#xff0c;简单easy&#xff0c;妈妈再也不用担心我搞不定啦 一、准备工作 先卸载车机上的autokit 或者 智能互联 app&#xff0c;这步很关…

珠海自适应网站建设陕西省交通建设集团商界分公司网站

一、什么是playbook及playbook的组成 1.Playbook的功能 playbook 是由一个或多个play组成的列表 Playboot 文件使用YAML来写的 play就是一个个模块用列表的方式体现出来 playbook的语法是用YAML的预防进行书写的 2.YAML 简介 是一种表达资料序列的格式&#xff0c;类似XM…

国内网站设计欣赏缪斯设计官网

因为机缘巧合&#xff0c;我接手了一个项目&#xff0c;阴差阳错的&#xff0c;我竟然又成了这个项目的半个负责人。而这个项目呢&#xff0c;由我们团队和别的团队一起合作&#xff0c;这就遇到一个问题了&#xff0c;我们的核心技术在上传到项目中的时候就会暴露给别的团队了…

合肥专业建站网站建设跟网站开发有什么区别吗

前言&#xff1a;在shell脚本编程中&#xff0c;我们经常会用到切割字符串&#xff0c;类似于python中的split。但shell中的命令比较五花八门&#xff0c;小编也是苦扰了很久&#xff0c;终于下定决心对它做一个总结。方法一&#xff1a;字符串替换法#/bin/bashstring"Hel…

学网页设计有什么网站视频素材网站大全免费

文章目录 英语口语中 "though" 的用法详解1. "Though" 作为转折连词的用法1.1 基本用法示例句子&#xff1a; 1.2 位置灵活性示例句子&#xff1a; 2. "Though" 作为副词的用法2.1 表示对比或转折示例句子&#xff1a; 2.2 强调前述观点示例句子…