吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2703|回复: 3
收起左侧

[Python 转载] [笔记]+ipv6 python学习-02

[复制链接]
uatlaosiji 发表于 2017-10-29 21:03


补充一下网络知识,就去看了看到linux programming interface 描述临时文件.
下边是笔记内容:
1.  ls -la /dev/fd/
下边全是软连接,在这里都是软连接。
2.  linux的二进制执行文件格式有COFF和ELF。coff比较复杂,之后在看。先mark
3. size + a.out 检查程序的各个区段的大小信息。
#size a.out
   text    data     bss     dec     hex     filename
   1237     504      16    1757     6dd    a.out
bss-未初始化段。全局变量,静态变量。
data段,初始化数据。全局变量,静态变量
dec
text段。执行的ML语句

1、文本段:包含程序的指令,它在程序的执行过程中一般不会改变。
2、数据段:包含了经过初始化的全局变量和静态变量,以及他们的值。
3、BSS段:包含未经初始化的全局变量和静态变量。
4、堆栈段:包含了函数内部声明的局部变量。
论1:未初始化的全局变量保存在BSS段
论2:经过初始化的全局变量保存在数据段中
论3:未初始化的静态变量保存在BSS段中
论4:经过初始化的静态变量保存在数据段中
论5:函数内部声明的局部变量保存在堆栈段(text
论6:const修饰的全局变量保存在文本段
结论7:const修饰的局部变量保存在堆栈段
论8:字符串常量保存在文本段
结论

1、经过初始化的全局变量和静态变量保存在数据段中。

2、未经初始化的全局变量和静态变量保存在BSS段。

3、函数内部声明的局部变量保存在堆栈段中。

4、const修饰的全局变量保存在文本段中,const修饰的局部变量保存在堆栈段中。

5、字符串常量保存在文本段中。



四、示例查看进程各个段中的数据
栈:栈段是一个容器,栈段中有多个栈帧。一个进程只有一个栈段。
每个函数都有自己的栈帧,在函数结束的时候,函数的栈帧释放。
函数中变量的空间分配在栈帧上的,变量的空间释放了。变量的生命结束了。
什么样的变量的空间分配在栈帧上?
函数中的自动局部变量和函数的形参的空间分配在栈帧中。  
生命周期:函数

堆:堆的生命周期   要么程序员手动释放堆空间。否则,进程结束的时候。
BSS:
数据段:
静态的局部变量和全局变量的空间分配在数据段。
生命周期:进程
但两者的作用域不同。:局部变量:函数内    全局变量:整个文件

代码段:

局部变量int i; 和 static int i; 生命周期不同,作用域一样
全局变量int i; 和 static int i; 生命周期相同,作用域不同

lzh@lzh:~/lzh/UC$ cat memory.c
#include <stdio.h>
int a;
int a1 = 10;
static int a2 = 20;
static int a3;
const int a4 = 10;
const int a5;
void foo(int i, const int i1)
{
   printf("函数形参 &i=%p\n", &i);
   printf("函数(常)形参 &i1=%p\n", &i1);
}

int main(void)
{
   int b;
   int b1=20;
   static int b2=30;
static int b3;
   const int b4 = 20;
const int b5;
   printf("pid=%d\n", getpid());
   printf("未初始化全局变量 &a=%p\n", &a);
   printf("全局变量 &a1=%p\n", &a1);
   printf("全局静态变量 &a2=%p\n", &a2);
printf("未初始化全局静态变量 &a3=%p\n", &a3);
   printf("常全局变量 &a4=%p\n", &a4);
   printf("未初始化局部变量 &b=%p\n", &b);
   printf("局部变量 &b1=%p\n", &b1);
   printf("局部静态变量 &b2=%p\n", &b2);
printf("未初始化局部静态变量 &b3=%p\n", &b3);
   printf("常局部变量 &b4=%p\n", &b4);

   foo(f, a1);

   int *g = (int *)malloc(4);
   printf("动态分配&g=%p\n", &g);

   getchar();
   return 1;
}


ref:http://blog.sina.com.cn/s/blog_3d5517850101gngl.html
http://blog.sina.com.cn/s/blog_770d18dd0102xat0.html
4.

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
lin_xop + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Erye_Forever 发表于 2017-10-29 22:29
看到ipv6就进来了
夏雨微凉 发表于 2017-10-30 07:59 来自手机
Jamesstrange 发表于 2017-10-30 12:14
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 08:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表