05 2022 档案
摘要:引言:可以先看 存储层次结构 和 Linux 文件I/O,理解缓存读写方式和文件I/O,看这篇就很容易了。 一、sync、fsync、fdatasync 传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓
阅读全文
摘要:fread就是通过read来实现的,fread是C语言的库,而read是系统调用。 差别在read每次读的数据是调用者要求的大小,比如调用者要求读取10个字节数据,read就会从内核缓冲区(操作系统开辟的一段空间用来存储磁盘上的数据)读10个字节数据到数组中,所以每次调用read会涉及到用户态与內核
阅读全文
摘要:正如上一篇我们提到过,进程是Linux系统中仅次于文件的基本抽象概念。正在运行的进程不仅仅是二进制代码,而是数据、资源、状态和虚拟的计算机组成。我们今天主要介绍进程的概念,组成,运行状态和生命周期等。 1、进程的概念 进程就是处于执行器的程序(目标代码放在某种存储介质上)。 但进程并不仅仅局限于一个
阅读全文
摘要:。。。 申请内存时,得到指针ptr = mem,将指针ptr赋值给 pBuff1和pBuff2,假设先释放pBuff1,且mem所在的chunk的前一个chunk是空闲状态,则两个chunk合并,再次释放pBuff2时,mem为非法地址,导致失败。
阅读全文
摘要:一、linux的内存布局 1、32位模式下内存的经典布局 图1 32位模式下内存经典布局 注:这种内存布局模式是linux内核2.6.7以前的默认内存布局形式 说明: (1)在32的机器上,loader将可执行文件的各个段次依次载入到从0x80048000(128M)位置开始的空间中。程序能够
阅读全文
摘要:转自:https://blog.csdn.net/weixin_45574485/article/details/113104362 堆基础 堆简介 (部分参考与libc源码) 不同的平台有不同的堆内存管理机制,比如: 管理机制对应的相关的平台 dlmalloc General purpose al
阅读全文
摘要:如何查看进程发生缺页中断的次数? 用ps -o majflt,minflt -C program命令查看。 majflt代表major fault,中文名叫大错误,minflt代表minor fault,中文名叫小错误。 这两个数值表示一个进程自启动以来所发生的缺页中断的次数。 发成缺页中断后,执行
阅读全文
摘要:转自:https://blog.csdn.net/initphp/article/details/50833036 目录 一、内存布局 二、ptmalloc内存管理器 1. 设计假设 2. 主分配区和非主分配区 3. chunk 内存块的基本组织单元 4. 内存分配malloc流程 5. 内存释放f
阅读全文
摘要:对于字符数组与字符指针: 1. 以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写"abc",那么编译器帮你存储的是"abc\0". 2. 字符串直接量作为字符指针的初始值 "hello"是一个字符串直接量,编译器将其作为const char*处理,与之相关联的内存空间位
阅读全文
摘要:写在前面 sizeof、strlen、字符串、数组,提到这些概念,相信学过C语言的人都能耳熟能详,也能谈得头头是道,但是,在实际运用中,当这些内容交织在一起时,大家却不一定能搞地清清楚楚,本文的目的正是帮助大家将相关知识总结清楚。 正文 先看一段代码 1 #include <stdio.h> 2 #
阅读全文
摘要:https://www.cnblogs.com/zhangshenghui/category/878264.html?page=2
阅读全文
摘要:下面两个函数都可用来复制一个现存的文件描述符: ? 1 2 3 4 #include<unistd.h> int dup(int filedes); int dup2(int filedes,int filedes2); 两函数的返回值:若成功则返回新的文件描述符,若出错则返回-1 由dup返回的新
阅读全文
摘要:stdin,stdout 等类型为 FILE *。 STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO 等类型为 int。 使用 FILE * 的函数主要有:fopen、fread、fwrite、fclose等,基本上都以 f 开头。 使用 STDIN_FILENO 等
阅读全文
摘要:函数汇总: open()、write()、read()、close() fopen()、fwrite()、fread()、fclose() 一、什么是文件 在讲述文件操作之前,我们首先要知道什么是文件。看到这个问题你可能会感觉到可笑,因为对于用过计算机的人来说,文件是最简单不过的概念了,例如一个文本
阅读全文
摘要:https://blog.csdn.net/suliangkuanjiayou/article/details/115406301
阅读全文
摘要:https://www.cnblogs.com/vamei/archive/2012/10/10/2718229.html
阅读全文
摘要:我们通常把一些公用函数制作成函数库,供其它程序使用。 函数库分为静态库和动态库两种。 1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用
阅读全文
摘要:什么是库 库是写好的,现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。 本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库(.a、.lib)和动态库(.so、.dll)。 所谓静态、
阅读全文
摘要:写在前面 今天下午一个同事问「register」关键字是什么作用?噢,你说的是「register」啊,它的作用是……脑袋突然断片儿,我擦,啥意思来着,这么熟悉的陌生感。做C语言开发时间也不短了,不过好像没有用到过「register」,但作用还是知道的,一下子想不起来了,一万个草泥马飞奔过来。 其实C
阅读全文
摘要:https://blog.csdn.net/delphiwcdj/article/details/6555073 https://blog.csdn.net/yueguangmuyu/article/details/116703618
阅读全文
摘要:被忽略的过程 转载自:预处理、编译、汇编、链接、启动代码、相关command - 克拉默与矩阵 - 博客园 (cnblogs.com) 对于C这种编译性语言,我们平时编译时,不管是通过IDE图形界面,还是通过命令行,总感觉编译一下就完成了,然后就得到了针对某OS和某CPU的二进制可执行文件(机器指令
阅读全文
摘要:static 一:静态,意思就是呆在一个地方,不想动,大概就是编译期间就确定地址了。首先了解下C中的进程内存布局: 1)正文段(.text)——CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(.data)——在程序中所有赋了初值的全局变量
阅读全文
摘要:转自:https://blog.csdn.net/cgwang_1580/article/details/79595958 文章目录 常用图像像素格式 RGB 和 YUV RGB 格式 YUV 格式 YUV采样 YUV存储格式 常见的像素格式 YUV422:YUYV、YVYU、UYVY、VYUY Y
阅读全文