国产激情久久久久影院小草_国产91高跟丝袜_99精品视频99_三级真人片在线观看

Linux C程序存儲(chǔ)空間的邏輯布局

時(shí)間:2024-07-12 21:47:40 Linux認(rèn)證 我要投稿
  • 相關(guān)推薦

關(guān)于Linux C程序存儲(chǔ)空間的邏輯布局

  Linux C程序存儲(chǔ)空間的邏輯布局是怎么樣的?為了方便大家,下面YJBYS小編為大家整理了關(guān)于Linux C程序存儲(chǔ)空間的邏輯布局的文章,希望對(duì)你有所幫助。

  一、APUE上指出了 Linux C程序存儲(chǔ)空間的邏輯布局,對(duì)于 X86上的Linux

  正文段從 0x08048000單元開(kāi)始

  棧底則在 0xC0000000之下開(kāi)始 (棧從高地址向低地址生長(zhǎng))

  圖如下:

  二、例程

  實(shí)現(xiàn)一個(gè)函數(shù)f(),不用指針,實(shí)現(xiàn)在函數(shù)內(nèi)修改傳入?yún)?shù)的值。

  #include "stdio.h"

  #include "sys/types.h"

  void f1(u_int32_t a)

  {

  printf("%p\n", &a);

  u_int8_t *ap = (u_int8_t *)&a;

  while(++ap)

  {

  printf("%p\n", ap);

  if( *ap == a)

  {

  *ap = 7;

  break;

  }

  }

  }

  main()

  {

  u_int32_t i = 123;

  printf("%p\n", &i);

  f1(i);

  printf("%d\n", i);

  }

  運(yùn)行結(jié)果

  /* * * result * * */

  /*

  BTC:/home/leon/test # ./a.out

  0xbf905300

  0xbf9052e0

  0xbf9052e1

  0xbf9052e2

  0xbf9052e3

  0xbf9052e4

  0xbf9052e5

  0xbf9052e6

  0xbf9052e7

  0xbf9052e8

  0xbf9052e9

  0xbf9052ea

  0xbf9052eb

  0xbf9052ec

  0xbf9052ed

  0xbf9052ee

  0xbf9052ef

  0xbf9052f0

  0xbf9052f1

  0xbf9052f2

  0xbf9052f3

  0xbf9052f4

  0xbf9052f5

  0xbf9052f6

  0xbf9052f7

  0xbf9052f8

  0xbf9052f9

  0xbf9052fa

  0xbf9052fb

  0xbf9052fc

  0xbf9052fd

  0xbf9052fe

  0xbf9052ff

  0xbf905300

  7

  */

  從結(jié)果可以清晰的看到:

  1 進(jìn)入函數(shù)f1()后,棧“向下”生長(zhǎng)了。

  2 通過(guò)直接訪問(wèn)棧內(nèi)容,修改了棧內(nèi)的值。

  注:這種操作相當(dāng)不安全,因?yàn)椴荒鼙WC棧內(nèi)沒(méi)有其它相同的值。

【Linux C程序存儲(chǔ)空間的邏輯布局】相關(guān)文章:

Linux下程序的Profile工具09-23

C語(yǔ)言程序的結(jié)構(gòu)10-17

最簡(jiǎn)單的Linux驅(qū)動(dòng)程序09-09

java程序中如何調(diào)用linux命令08-27

C語(yǔ)言程序設(shè)計(jì)學(xué)習(xí)技巧08-02

計(jì)算機(jī)C語(yǔ)言程序設(shè)計(jì)的介紹09-02

2024年Linux認(rèn)證考試要點(diǎn):shell程序控制結(jié)構(gòu)語(yǔ)句09-20

學(xué)習(xí)二級(jí)c語(yǔ)言程序設(shè)計(jì)的方法09-09

Linux認(rèn)證概念10-29

Linux認(rèn)證優(yōu)勢(shì)06-10