unix环境高级编程-第七章-进程环境
2011-11-14 12:49
281 查看
这两天都没写博客,主要是我想改变一下方法吧。不想一节节的读了,我想把一个整章看好了,然后进行思考,然后再进行编辑写在博客里。我觉得这样可以省的时间来思考,写程序。把每章中最主要的部门拿出来。算是第二遍复习。可以加深我的印象吧。
1进程终止
进程正常终止:
view plaincopy to clipboardprint?
#include<stdlib.h>
void exit(int status);
void _Exit(int status);
#include<unistd.h>
void _exit(int status);
$gcc exit2.c -o exit2
$./exit2output begin
content in buffer
view plaincopy to clipboardprint?
/* _exit1.c */
#include<unistd.h>
main()
{
printf("output begin\n");
printf("content in buffer");
_exit(0);
} <p>编译并运行:</p><p>$gcc _exit1.c -o _exit1
$./_exit1
output begin</p>
5.存储器分配
三个函数的声明分别是:
view plaincopy to clipboardprint?
void* realloc(void* ptr, unsigned newsize);
void* malloc(unsigned size);
void* calloc(size_t nelem,
size_t elsize);
void* realloc(void* ptr, unsigned newsize);
void* malloc(unsigned size);
void* calloc(size_t nelem, size_t elsize);
都在stdlib.h函数库内
原型:extern void *realloc(void *mem_address, unsigned int newsize);
用法:#include <alloc.h>
功能:改变mem_address所指内存区域的大小为newsize长度。
说明:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
当内存不再使用时,应使用free()函数将内存块释放。
原型:extern void *malloc(unsigned int num_bytes);
用法:#include <alloc.h>
功能:分配长度为num_bytes字节的内存块
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
当内存不再使用时,应使用free()函数将内存块释放。
原型:extern void *calloc(int num_elems, int elem_size);
用法:#include <alloc.h>
功能:为具有num_elems个长度为elem_size元素的数组分配内存
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
当内存不再使用时,应使用free()函数将内存块释放。
区别:
1、calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据
2、realloc是给一个已经分配了地址的指针重新分配空间,参数ptr为原有的空间地址,newsize是重新申请的地址长度
更多内容,欢迎访问:http://blog.csdn.net/wallwind
1进程终止
进程正常终止:
view plaincopy to clipboardprint?
#include<stdlib.h>
void exit(int status);
void _Exit(int status);
#include<unistd.h>
void _exit(int status);
view plaincopy to clipboardprint? /* exit2.c */ #include<stdlib.h> main() { printf("output begin\n"); printf("content in buffer"); exit(0); } /* exit2.c */ #include<stdlib.h> main() { printf("output begin\n"); printf("content in buffer"); exit(0); }编译并运行:
$gcc exit2.c -o exit2
$./exit2output begin
content in buffer
view plaincopy to clipboardprint?
/* _exit1.c */
#include<unistd.h>
main()
{
printf("output begin\n");
printf("content in buffer");
_exit(0);
} <p>编译并运行:</p><p>$gcc _exit1.c -o _exit1
$./_exit1
output begin</p>
view plaincopy to clipboardprint? size size命令查看的时候,就可以看到。
5.存储器分配
三个函数的声明分别是:
view plaincopy to clipboardprint?
void* realloc(void* ptr, unsigned newsize);
void* malloc(unsigned size);
void* calloc(size_t nelem,
size_t elsize);
void* realloc(void* ptr, unsigned newsize);
void* malloc(unsigned size);
void* calloc(size_t nelem, size_t elsize);
都在stdlib.h函数库内
原型:extern void *realloc(void *mem_address, unsigned int newsize);
用法:#include <alloc.h>
功能:改变mem_address所指内存区域的大小为newsize长度。
说明:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
当内存不再使用时,应使用free()函数将内存块释放。
原型:extern void *malloc(unsigned int num_bytes);
用法:#include <alloc.h>
功能:分配长度为num_bytes字节的内存块
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
当内存不再使用时,应使用free()函数将内存块释放。
原型:extern void *calloc(int num_elems, int elem_size);
用法:#include <alloc.h>
功能:为具有num_elems个长度为elem_size元素的数组分配内存
说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
当内存不再使用时,应使用free()函数将内存块释放。
区别:
1、calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据
2、realloc是给一个已经分配了地址的指针重新分配空间,参数ptr为原有的空间地址,newsize是重新申请的地址长度
更多内容,欢迎访问:http://blog.csdn.net/wallwind
相关文章推荐
- UNIX环境高级编程--第七章进程环境总结
- unix环境高级编程-第七章-进程环境
- UNIX环境高级编程——第七章—进程环境
- UNIX环境高级编程:第七章:进程环境
- UNIX环境高级编程学习之第七章进程环境-存储器分配malloc
- UNIX环境高级编程学习之第七章进程环境-环境变量表读取/添加/修改/删除
- UNIX环境高级编程学习之第十三章守护进程 - 初始化一个守护进程
- 进程编程1 – Unix环境高级编程7章读书笔记
- UNIX环境高级编程笔记之进程控制
- 进程编程3 - UNIX高级环境编程第9章读书笔记
- unix环境高级编程--进程关系与守护进程
- UNIX环境高级编程-第13章- 守护进程
- UNIX环境高级编程(八)进程控制
- UNIX环境高级编程——进程关系
- Unix环境高级编程笔记 :7、进程环境
- 进程编程2 – Unix环境高级编程8章读书笔记
- 高级UNIX环境编程13 守护进程
- Unix环境高级编程学习笔记之进程环境(1)
- unix环境高级编程_精灵进程
- 进程编程1 – Unix环境高级编程7章读书笔记