香奈儿网站建设策划书怎么做网站的域名解析

web/2025/10/5 1:01:39/文章来源:
香奈儿网站建设策划书,怎么做网站的域名解析,热门网站建设加盟平台,广西北海联友建设网站管理3. 深入探究文件 IO 1. Linux 系统如何管理文件1.1 静态文件与inode1.2 文件打开时的状态 2. 返回错误处理与errno2.1 strerror 函数2.2 perror 函数 3. 空洞文件4. O_APPEND 和 O_TRUNC5. 多次打开同一个文件6. 复制文件描述符6.1 dup6.2 dup2 7. 文件共享7.1 同一个进程中多次… 3. 深入探究文件 IO 1. Linux 系统如何管理文件1.1 静态文件与inode1.2 文件打开时的状态 2. 返回错误处理与errno2.1 strerror 函数2.2 perror 函数 3. 空洞文件4. O_APPEND 和 O_TRUNC5. 多次打开同一个文件6. 复制文件描述符6.1 dup6.2 dup2 7. 文件共享7.1 同一个进程中多次调用 open 函数打开同一个文件7.2 不同进程分别使用 open 函数打开同一个文件7.3 同一个进程中对文件描述符进行复制 8. 原子操作与竞争冒险8.1 O_APPEND8.2 pread 和 pwrite8.3 创建一个文件 9. fcntl 和 ioctl9.1 fcntl9.2 ioctl 10. 截断文件 1. Linux 系统如何管理文件 1.1 静态文件与inode 文件没有被打开的情况下一般都是存放在磁盘中的并且以一种固定的形式进行存放这时称为静态文件。文件存储在硬盘上硬盘的最小存储单元叫做扇区每个扇区大小是 512 字节 相当于 0.5k。操作系统读取硬盘的时候不会一个个扇区的读取而是一次读取多个扇区也就是一个块 通常是 4k也就是 8 个扇区。将磁盘进行分区格式化的时候会分为数据区和 inode 区inode 区存放 inode 表该表中存放着 inode 节点每个节点都是一个结构体包含着对应文件的属性信息。所以查找文件时先根据文件名找到对应的 inode 编号然后找到对应的表最后查找相关信息读取数据。 1.2 文件打开时的状态 调用 open 打开文件的时候内核会申请一段内存将数据读取到内存中进行管理也就是动态文件。对动态文件进行读写操作时和静态文件不会同步数据的同步由内核完成内核会在之后将内存这份动态文件同步到磁盘中。静态文件有多个块一个块有多个扇区一个扇区有多个字节所以对静态文件操作时需要反复读写块而内存可以直接一个字节一个字节的改动所以速率较快。 在 Linux 系统中内核会有一个专门的数据结构管理一个进程叫做 PCB。该结构体中有一个指针指向了文件描述符表而文件描述符表中的每一个元素对应文件表文件表存放着文件的相关信息。 2. 返回错误处理与errno 当发生错误时操作系统会将错误对应的编号赋值给 errno 变量每个进程都有一个自己的 errno 全局变量 2.1 strerror 函数 #include string.h char *strerror(int errnum); // 参数就是对应的errno返回对应错误编号的字符串描述信息2.2 perror 函数 #include stdio.h void perror(const char *s); // 参数可以传递自己想要的信息然后错误描述就会打印在s之后3. 空洞文件 lseek 函数还允许文件偏移量超出文件长度也就是文件末尾还可以向后偏移。比如一个文件只有 4096k此时在文件头部向后偏移 6000 字节然后在这里写入数据那么 4096 ~ 6000 这部分就是空洞。文件空洞部分不会占用任何物理空间但是空洞文件形成时逻辑上该文件的大小是包含了空洞部分的大小的。 文件空洞在多线程共同操作文件时有很大作用可以将文件分段不同线程在不同空洞部分写入数据。 4. O_APPEND 和 O_TRUNC O_TRUNC 会将文件原本的内容清除然后再写入数据而O_APPEND 是在文件末尾写入数据。 5. 多次打开同一个文件 一个进程内多次打开一个文件那么会得到多个不同的文件描述符同理在关闭的时候需要依次关闭对应的文件描述符。而且在内存中不会存在多份动态文件不同文件描述符对应的读写位置偏移量是相互独立的。因为位置偏移量是相互独立的所以对不同的文件描述符读写时是分别进行读写。使用 open 函数打开文件时默认是覆盖式写入也就是说当分别进行写入操作时后续写入数据时会先将文件清空再写入。 不同的文件描述符就对应不同的文件表而位置偏移量就保存在文件表中但是文件表中的 inode 指针指向的都是同一个 inode。 同样多个不同的进程打开同一个文件在内存中也只是维护一份动态文件多个进程间共享有各自独立的文件读写位置偏移量。当文件的引用计数为 0 时系统会自动关闭文件。 6. 复制文件描述符 在 Linux 系统中open 得到的文件描述符可以进行复制新的文件描述符也可以对旧文件描述符指向的文件进行操作拥有相同的权限。但是新的文件描述符和旧的文件描述符指向的文件表是同一个 6.1 dup #include unistd.h int dup(int oldfd); // 成功返回由系统分配的新的文件描述符失败返回-1#include stdio.h #include iostream #include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.h using namespace std;int main() {int fd1open(./text.txt,O_CREAT|O_RDWR,0777);int fd2dup(fd1);write(fd1,hello ,6);write(fd2,world!,6);return 0; }6.2 dup2 #include unistd.h int dup2(int oldfd,int newfd); // 成功返回newfd失败返回-1int main() {int fd1open(./text.txt,O_CREAT|O_RDWR,0777);int fd2dup2(fd1,9); // 可以指定文件描述符write(fd1,hello ,6);write(fd2,world!,6);cout fd2endl;return 0; }7. 文件共享 7.1 同一个进程中多次调用 open 函数打开同一个文件 会得到同一个文件的不同文件描述符并且多个文件描述符对应多个不同的文件表所有的文件表指向同一个 inode 节点 7.2 不同进程分别使用 open 函数打开同一个文件 7.3 同一个进程中对文件描述符进行复制 8. 原子操作与竞争冒险 当两个独立的进程对同一个文件进行操作时因为此时文件是共享的如果当一个进程的操作未完成时另一个进程就对文件进行操作就会发生竞争冒险。所以就有了原子操作。原子操作是指一个任务要么不做要么做完。 O_APPEND、pread() 和 pwrite()、创建文件都是可以实验原子操作的。 8.1 O_APPEND 两个进程都向文件中写入数据后一个进程会覆盖前一个进程写入的内容就需要使用该标志 8.2 pread 和 pwrite 这两个函数可传入一个位置偏移量用于指定文件当前读写的位置偏移量。但是不更新文件表中当前位置偏移量就是说在当前位置 0 调用这两个函数时如果设置 offset 为1024然后再调用 lseek 获取当前位置发现依旧是 0 #include unistd.h ssize_t pread(int fd, void *buf, size_t count, off_t offset); ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);8.3 创建一个文件 如果两个进程都会创建同一个文件就需要使用 O_EXCL如果要打开的文件已经存在就 open 失败如果不存在就创建这个文件 9. fcntl 和 ioctl 9.1 fcntl fcntl 函数可以对一个已经打开的文件描述符执行一系列控制操作 #include unistd.h #include fcntl.h int fcntl(int fd, int cmd,.../* arg */); /* cmd:操作命令表示我们将对fd进行什么操作* F_DUPFD 或 F_DUPFD_CLOEXEC :复制文件描述符* F_GETFD 或 F_SETFD :获取/设置文件描述符标志* F_GETFL 或 F_SETFL :获取/设置文件状态标志* F_GETOWN 或 F_SETOWN :获取/设置异步IO所有权* F_GETLK 或 F_SETLK :获取/设置记录锁* / // 第三个参数根据cmd来传入对应的实参 // 返回值是失败返回-1成功根据cmd有不同的返回值复制文件描述符 int main() {int fd1open(./test.txt,O_CREAT|O_RDONLY,0777);int fd2fcntl(fd1,F_DUPFD,0);// 如果传入的第三个参数已经被使用就返回一个比0大的可使用的文件描述符否则就返回第三个参数cout fd2 endl;return 0; }获取/设置文件状态标志 int main() {int fd1open(./test.txt,O_CREAT|O_RDWR,0777);int flagfcntl(fd,F_GETFL);int fd2fcntl(fd1,F_SETFL,flag|O_APPEND);cout fd2 endl;return 0; }F_GETFL 成功时返回状态标志F_SETFL 的第三个参数表示需要设置的状态标志。但是文件权限标志O_RDONLY、 O_WRONLY、 O_RDWR以及文件创建标志O_CREAT、O_EXCL、 O_NOCTTY、 O_TRUNC不能被设置只有 O_APPEND、 O_ASYNC、O_DIRECT、 O_NOATIME 以及 O_NONBLOCK 这些标志可以被修改 9.2 ioctl 可以认为是文件 IO 操作的杂物箱一般用于操作特殊文件或硬件外设比如获取 LCD 相关信息等这里只是介绍以下 #include sys/ioctl.h int ioctl(int fd, unsigned long request,...); // request 表示向文件描述符请求相应的操作第三个可变参数根据request设置10. 截断文件 使用系统调用 truncate() 或 ftruncate()可将普通文件截断为指定字节长度 #include unistd.h #include sys/types.h int truncate(const char *path, off_t length); int ftruncate(int fd, off_t length);// 使用前必须open并且有可写权限先创建两个文件这时文件大小都是0字节 向文件中插入数据改变文件大小 int main() {int fd1open(./file1,O_RDWR);char buffer1[4096]{0};char buffer2[2048]{0};write(fd1,buffer1,sizeof(buffer1));write(open(./file2,O_RDWR),buffer2,sizeof(buffer2));return 0; }截断文件发现文件大小改变了 int main() {int fd1open(./file1,O_RDWR);char buffer1[4096]{0};char buffer2[2048]{0};write(fd1,buffer1,sizeof(buffer1));write(open(./file2,O_RDWR),buffer2,sizeof(buffer2));ftruncate(fd1,1024);truncate(./file2,2048);return 0; }

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

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

相关文章

昆山建设信息网站地图 添加到网站

在信息技术飞速发展的今天,企业对软件系统的需求不断增加。然而,如何在保证高质量的前提下快速构建系统成为了一个关键问题。本文将深入探讨低代码(Low-Code)开发与传统代码编程的区别,并探讨如何利用这两种方法快速高…

建设网站前端洛阳网电脑版

Failed to load sql modules into the database cluster 原因 在windows10上安装PostgreSQL时报错:Failed to load sql modules into the database cluster 这是因为在安装时,安装包无法自动创建postgres用户 解决方法 将安装失败的软件删除,并将文件夹也一并删除主动创…

举报企业网站用个人信息备案公司网站功能

转http://www.iteye.com/problems/69457Activity启动后点击一个界面按钮后会开启一个服务(暂定为padService),在padService中会启动一个线程(暂定为Thread-3)发起Socket连接。我们项目中使用mina作为socket通信框架,用过mina的同志们应该熟悉&#xff0c…

零基础学网站建设网络服务商分为哪几类

相关代码gitee自取:C语言学习日记: 加油努力 (gitee.com) 接上期: 学C的第三十一天【通讯录的实现】_高高的胖子的博客-CSDN博客 1 . 为什么存在动态内存分配 学到现在认识的内存开辟方式有两种: 创建变量: int val …

公司网站建设系统淘宝网站的内容建设

1源码共读大家好,我是若川。众所周知。从8月份开始,我组织了源码共读活动,至今已经有5个月了,每周一期,进行到了第18期。每周坚持写源码解读文章,每天坚持答疑解惑,帮助了很多人学会看源码&…

免费网站统计做兼职网站有哪些

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

网站开发人员岗位职责宁夏建设投资集团公司网站

24 双非硕的秋招总结 结果: 运气捡漏去了腾讯 想想自己整个研究生学习过程,还是挺坎坷的,记录一下,也给未来的同学提供一些参考。 研一 我是研一上开始学前端的,应该是21年10月份左右,我们实验室是专门…

公司网址网站最好的优化是什么

在Windows 11上,Android的Windows子系统(WSA)是一个集成,允许你在笔记本电脑或台式机上与Windows应用程序一起运行Android应用程序,在本指南中,我将向你展示入门步骤。官方规定,你只能从亚马逊应用商店安装应用程序,但也可以使用安卓调试桥(ADB)工具侧载安卓应用程序…

网站没有问题但是一直做不上首页松岗网站建设公司

我永远忘记了OSIF插件和功能的 MANIFEST.MF和feature.xml中的依赖项声明的规则是什么。 谷歌搜索经常导致沮丧而不是答案。 所以,因为今天我实际上找到了这些规则的简要列表,所以我想在这里重新发布它们,并进行一些小的修改以帮助阐明。 OSGi…

网站建设课程设计实训心得网站欢迎页模板

AssetBundles 简介 什么是AssetBundles? AssetBundles是Unity中一种用于打包和存储资源(如模型、纹理、声音等)的文件格式。它允许你将游戏或应用程序中的资源以可独立加载的方式打包,使其在运行时动态加载而不是静态内置在应用中。这种动态加载的方式让你能够优化资源使…

网站建设维护问题响应式网站不加载图片

试卷代号:1304 2021年春季学期期末统一考试 管理案例分析 试题 2021年7月 注意事项 一、将你的学号、姓名及分校(工作站)名称填写在答题纸的规定栏内。考试结束后,把试卷和答题纸放在桌上。试卷和答题纸均不得带出考场。监考人收完…

seo站内优化公司上海网站制作与推广

一、进程Process 拥有自己独立的堆和栈,既不共享堆,也不共享栈,进程由操作系统调度;进程切换需要的资源很最大,效率低。 对于操作系统来说,一个任务就是一个进程(Process)&#xff…

支付网站搭建建筑企业网站设计

转自【翻译】NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改。对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢。 NeHe OpenGL第三十课…

网页制作与网站建设期末考试网站免费申请

一、微服务架构演进过程 近年来我们大家都体会到了互联网、移动互联带来的好处,作为IT从业者,在生活中时刻感受互联网好处的同时,在工作中可能感受的却是来自自互联网的一些压力,那就是我们传统企业的IT建设也是迫切需要转型&…

学校做网站需要多少钱代运营公司是什么意思

注意事项: kail首次打开metasploit,会初始化数据,可能会有点慢,请耐心等待!本文仅供学习漏洞渗透测试,不得用于其他非法用途,否则造成的任何后果自负!!! 1.…

中国风优秀个人网站欣赏营销运营推广服务

做PHD两年了,经验不多,从朋友、导师、教授、名人得到的做PHD的经验却很宝贵,为了不让自己忘记,特此记录,希望对各位已经是PHD或即将成为PHD的朋友有所帮助。 1.多读文章 做PHD与做硕士不一样,计算机的硕士…

东莞纸箱定制 技术支持 东莞网站建设网站前端怎么做

payara 创建 集群回答Stackoverflow问题可以为我发现我最喜欢的开源工具的正式文档中的空白提供很好的反馈。 我在这里回答的问题之一是如何在docker容器中更改Payara Server主密码 。 显然,在标准服务器安装中,这很简单–只需使用asadmin change-master…

网站用户登录流程图电商网站有那些

3Dxchange的使用 让图片跳舞 导入:I:\安装包\#动画开发\test\跳舞 model(includeTPose).fbx 转成非标准角色 手动点击骨骼,然后点击人物骨骼,选择00_t-pose 绿灯了就可以转换了,记得启用。 上面的自定义可以先选择3DS 转换后…

河南中安建设集团有限公司网站罗定微网站建设

题意 传送门 AtCoder ABC239G Builder Takahashi 题解 将原图中每个节点拆为入点 v v v 与出点 v ′ v v′,对于原图任一边 ( u , v ) (u,v) (u,v) 则 u ′ → v , v → u u\rightarrow v, v\rightarrow u u′→v,v→u 连一条容量为 ∞ \infty ∞ 的边&…

pedl中文模组网站网站批量创建程序

1.gulp是什么? gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器;她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成;使用她,不仅可以很愉快的编…