Chinaunix首页 | 论坛 | 博客
  • 博客访问: 188628
  • 博文数量: 45
  • 博客积分: 1657
  • 博客等级: 上尉
  • 技术积分: 765
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-13 12:42
文章分类

全部博文(45)

文章存档

2012年(1)

2011年(4)

2010年(6)

2009年(3)

2008年(31)

分类: IT职场

2008-08-23 17:30:22

  首先是我的效率问题。
  一些通常性问题,作出某种结论时,应该记住,牢记于心,下次不待此事发生,就能判断出。而不是进行重复性的归结,这样浪费时间和精力,记不住下次一样徒劳无益。
  关键是去克服懒惰,用心记住。

以下是今天的学习笔记(20080823)
exit函数以反序调用注册函数atexit


文本段     text segment
由一些只读的指令组成,通常在内存中只有一个copy(指多进程情况)。

alloc返回的是void *类型,所以我们不必显示类型转换。

realloc
如果当前区域后有足够的空间,realloc不移动数据;
如果空间不够,realloc分配别一块足够大的空间,把数据移动到新空间。
realloc的第三个参数是总的大小,而不是改变的值。

尽管很少减少存储空间,但实际上被释放的空间并没还给内核,而是放在malloc pool中。

实际上大多数情况下分配的空间都比请求的稍多一些,如allocated block大小、下一个allocated block,
所以一定注意写过界问题。

用free释放空间,仅对alloc系列函数有效。

获取环境变量,最好用getenv(char *),而不是main第三个参数environ得到所有。
不论putenv还是setenv,使用的参数最好是分配的内存,不要用栈内存。

环境变量列表通常以NULL结尾。
第一次添加环境变量:创建新的大小合适的空间,把environ列表复制过来,在最后添加新变量,不要忘记以NULL结尾,
最后把environ指向新分配的空间。
阅读(645) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~