zoukankan      html  css  js  c++  java
  • 什么是操作系统虚拟地址

    一、C语言的基础:
        1) C结尾文件:源代码文件
        2) O结尾文件:目标文件(二进制文件),每个文件经过编译都会形成目标文件,多个目标文件连接后可以形成可执行文件。(gcc -g -c hello2.c)
        3) H结尾文件:头文件,存放着C文件中的函数定义,结构体定义等
        4) 可执行文件:gcc hello2.c -o hello2.out(生成的文件名)
        5)so结尾文件:动态库
     
    二、寻找代码的虚拟地址
       
    1)编写一个C程序
       
    #include <stdio.h>
    int k=3;
    int  increase_num(int x , int y )
    {
            return x+y;
    }
    int main()
    {
    printf( " k address  is %p 
    ", &k  );
    printf("&k=========" );
    static int i = 4 ;
    int x = 1;
    int y = 2 ;
    // sum(x,y) ;
    while(1){
    }
    return 0;
    }
    View Code
    2)产生一个目标文件
       gcc -g -c hello2.c
     
    3)查看反编译的详细信息
    objdump -s -d  hello2.o
     
    4)生成一个可执行文件
    gcc  hello2.c -o hello2.out
     
    5)找出执行文件的进程号码 -   
    ps -ef| grep hello2 
     进程号码为 ->  14103 11192 99 16:12 pts/0    00:00:11 ./hello2.out
     
    6)查看虚拟地址
    cat /proc/14103/map(cat /proc/进程号码/map)
    图上的是这个进程占用的虚拟地址:
     
     

  • 相关阅读:
    poj 1733 Parity game
    poj 1456 Supermarket
    bzoj 1304 [CQOI 2009] 叶子的染色
    51Nod 1667 概率好题
    2015年阿里巴巴校招研发工程师在线笔试题汇总
    从字符串常量起说内存分配
    字符串笔面试题
    排序算法(4)-线性时间排序
    华为2015校园招聘机试
    笔画宽度变化(C++和matlab算法)
  • 原文地址:https://www.cnblogs.com/lean-blog/p/13713774.html
Copyright © 2011-2022 走看看