C语言
文章平均质量分 76
csdn_dyq111
这个作者很懒,什么都没留下…
展开
-
Linux内存管理--系列文章肆——静态链接
一、引子上篇文章介绍了目标文件,也就是讲到编译过程中的汇编这个阶段。本篇要讲目标文件怎么变成一个可执行文件的,介绍编译过程中的链接。链接主要分为两种,静态链接和动态链接。它们本质上的区别,是在程序的编译和运行过程中使用库的方式不同。原创 2024-05-26 02:48:54 · 717 阅读 · 0 评论 -
Linux内存管理--系列文章叁——ELF文件分析
从上述过程可以看出,目标文件是编译后但未进行链接的中间文件。虽然未链接可能导致它和最后的可执行文件在结构上有少许的不同,但目标文件和可执行文件的结构、内容相似。所以目标文件一般采用可执行文件的储存格式。动态链接库和静态链接库也属于目标文件,它们也会按照可执行文件的格式来储存。ELF文件类型说明实例可执行文件(Executable File)可以直接执行的程序,一般没有拓展名/bin/bash共享目标文件(Shared Object File)原创 2024-03-31 02:58:21 · 871 阅读 · 0 评论 -
Linux内存管理--系列文章貮——内核态内存
接上文,用户态写完,本章写内核态内存空间。原创 2024-03-16 22:54:22 · 697 阅读 · 0 评论 -
Linux内存管理--系列文章壹——用户态内存分布
canonical address空洞。原创 2024-03-10 01:38:03 · 624 阅读 · 0 评论 -
C语言应用层程序热补丁
Linux提供了一套API来动态装载库。热补丁主要使用如下API:- dlopen,打开一个库,并为使用该库作些准备。- dlsym,在打开的库中查找符号的值。- dlclose,关闭库。在使用一下API时,要提前包含头文件**#include <dlfcn.h>**dlopen函数原型:--filename是你要打开的库路径--flags必须有RTLD_LAZY或者RTLD_NOW其中之一。RTLD_LAZY:在dlopen返回前,对于动态库中的未定义的符号不执行解析。原创 2024-01-21 14:02:56 · 683 阅读 · 0 评论 -
GDB 入门使用
GDB(GNU symbolic debugger)是GNU的一款代码调试工具,它可以实现查看代码内部结构、打印变量值、设置断点、单步调试等功能。注意:若使用gdb调试代码,则在编译阶段需要添加-g选项。gdb只能调试生成的可执行程序,而不能调试.c源代码文件。原创 2023-01-06 22:09:47 · 596 阅读 · 0 评论 -
循环检测磁盘容量,删除较早文件
#define DISK "/mnt/mmcblk0p1/" //SD卡所在位置,在我用海思开发板上。SD卡挂载在该目录下int SDCarChick(){ while(1){ long long total_size1, avail_size1; //磁盘的相关信息 float avail_ratio1; str...原创 2020-03-12 20:13:35 · 864 阅读 · 0 评论 -
按照时间变化建立文件名
int FileNameFollowTime(){ char filename[50]; memset(filename,0,50); struct tm *t,t10,tTemp; time_t tt; time(&tt);//先得到当前的时间,建立一个文件名 t = localtime(&tt); t10 = *t; tTemp ...原创 2020-03-12 20:40:29 · 441 阅读 · 0 评论