logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

程序的本质之二ELF文件的文件头、section header和program header

操作系统:CentOS Linux release 7.7.1908内核版本:3.10.0-1062.1.1.el7.x86_64运行平台:x86_64参考文献:http://refspecs.linuxfoundation.org/本文根据/usr/include/elf.h文件和程序编译的详细过程文中所述的tanglinux来分析可执行文件的文件头、section hea...

Qt数据库访问类QSqlDatabase,阅读完它的源代码之后才恍然大悟,原来你是这样的类

Qt源码版本:5.13.0QSqlDatabase是数值类,一个QSqlDatabase实例代表一个数据库连接,但它的创建不是依靠自身的构造函数(QSqlDatabase()只会创建一个空的,无效的对象),而是依靠它的静态成员函数addDatabase来构建,它的返回值就是一个有效的QSqlDatabase对象(也就是一个数据库连接)。1、通过addDatabase函数创建QSqlDatabase

拯救无法启动的虚拟机文件.vmdk中的数据

虚拟机:VMwareWorkstation 8.0.2 build-591240     从事Linux开发的软件工程师几乎都使用过虚拟机软件,如VMware workstation,一般把虚拟机软件运行在微软的操作系统中,把Linux操作系统(如Ubuntu)运行在虚拟机软件中,这样就可以在一台主机上同时使用两个不同类型的操作系统,非常方便。    运行在虚拟机中的操作系统以.vmd

#虚拟机#linux#ubuntu
使用CodeViz生成C/C++函数调用关系图

运行环境:虚拟机下的Ubuntu 11.04     结合Graphviz工具,使用CodeViz可以生成直观和漂亮的C/C++程序函数之间的调用关系图。    1、安装graphviz    在安装CodeViz之前,必须先安装它所依赖的工具dot,否则将无法完成./configure操作并提示以下错误信息:checking for dot...not foundFATA

#ubuntu#perl
Linux内核中的PID散列表实例

开发平台:基于虚拟机的Ubuntu 11.04    内核源码:linux-2.6.38.8.tar.bz2    目标平台:ARM体系结构    参考文献:《深入Linux内核架构》      关于散列表的概念可以参考博文《散列表的基本概念及其运算》。    1、PID散列表    PID散列表是在系统启动过程中通过pidhash_init函数(被start_kern

#ubuntu
详解Linux内核双向循环链表算法的实现(上)

开发平台:Ubuntu11.04    编译器:gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)    内核源码:linux-2.6.38.8.tar.bz2     据我们所知,单链表只有一个指向其直接后继的指针域,而且只能从某个结点出发顺着指针域往后寻查其他结点。若要寻查结点的直接前趋,则需要从头指针重新开始。为了克服单链表这种单

#算法#list
Linux进程管理之进程的创建

开发平台:Ubuntu 11.04    内核源码:linux-2.6.38.8.tar.bz2    目标平台:ARM体系结构     在Linux应用程序的开发中,可以通过fork、vfork和clone等系统调用来创建一个子进程,它们在Linux内核中的入口点分别为sys_fork、sys_vfork和sys_clone函数。 /* linux-2.6.38.8/arch

#linux#list
Linux内核的通知链机制

内核源码:linux-2.6.38.8.tar.bz2     在Linux内核中,通知链是一种非常好的异步通信机制,它的实现也非常简单,就是通过某个单循环链表来实现。    1、通知链实例都使用notifier_block结构体来表示 /* linux-2.6.38.8/include/linux/notifier.h */struct notifier_block {in

网络驱动移植之sk_buff结构体及其相关操作函数(下)

2、结构体相关操作函数    (1)、dev_alloc_skb    实际上,函数dev_alloc_skb最终是调用__alloc_skb函数来分配数据缓冲区和sk_buff结构体的,如下图:     从dev_alloc_skb到__alloc_skb所涉及的源代码如下: /* linux-2.6.38.8/net/core/skbuff.c */struct sk_b

#网络#linux
例解GNU C之typeof

前言:计算机语言是编译器和程序员交流的依据和规范,GNU C是GCC特有的功能,在Linux内核中被广泛应用。    帮助文档:http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/C-Extensions.html#C-Extensions     关键字typeof用于获取表达式的数据类型。    简单例子,如清单1: char *chpt

    共 21 条
  • 1
  • 2
  • 3
  • 请选择