* %%百分号
两个连续的%号,字符串输出为一个%号
* coreleft
函数名: coreleft
功 能: 返回未使用内存的大小
用 法: unsigned coreleft(void);
程序例:
#include <stdio.h>
#include <alloc.h>
int main(void)
{
printf("The difference between the highest allocated block and\n");
printf("the top of the heap is: %lu bytes\n", (unsigned long) coreleft());
return 0;
}
* sbrk
函数名: sbrk
功 能: 增加程序可用数据段空间,增加大小由参数 incr决定 。
返回值:函数调用成功返回一指针,指向新的内存空间。函数调用失败则返回 -1,将errno设为ENOMEM。
用 法: char *sbrk(int incr);
程序例:
#include <stdio.h>
#include <alloc.h>
int main(void)
{
printf("Changing allocation with sbrk()\n");
printf("Before sbrk() call: %lu bytes free\n",
(unsigned long) coreleft());
sbrk(1000);
printf(" After sbrk() call: %lu bytes free\n",
(unsigned long) coreleft());
return 0;
}
* \ 加执行命令
\ 加执行命令,可以单纯执行此命令,可以屏蔽掉系统或者环境变量默认指定的命令参数
例如: \cp
* strle和sizeof
strlen计算不包括终止null字节的字符串长度,而sizeof则计算包括终止null字节的缓冲区长度
* 父子进程
子进程和父进程继续执行fork调用之后的指令。子进程是父进程的副本,子进程获得父进程数据空间/堆和栈的副本。
注意,
这是子进程拥有的副本。父,子进程并不共享这些存储空间部分。父,子进程共享正文段。
文件描述符共享
两个连续的%号,字符串输出为一个%号
* coreleft
函数名: coreleft
功 能: 返回未使用内存的大小
用 法: unsigned coreleft(void);
程序例:
#include <stdio.h>
#include <alloc.h>
int main(void)
{
printf("The difference between the highest allocated block and\n");
printf("the top of the heap is: %lu bytes\n", (unsigned long) coreleft());
return 0;
}
* sbrk
函数名: sbrk
功 能: 增加程序可用数据段空间,增加大小由参数 incr决定 。
返回值:函数调用成功返回一指针,指向新的内存空间。函数调用失败则返回 -1,将errno设为ENOMEM。
用 法: char *sbrk(int incr);
程序例:
#include <stdio.h>
#include <alloc.h>
int main(void)
{
printf("Changing allocation with sbrk()\n");
printf("Before sbrk() call: %lu bytes free\n",
(unsigned long) coreleft());
sbrk(1000);
printf(" After sbrk() call: %lu bytes free\n",
(unsigned long) coreleft());
return 0;
}
* \ 加执行命令
\ 加执行命令,可以单纯执行此命令,可以屏蔽掉系统或者环境变量默认指定的命令参数
例如: \cp
* strle和sizeof
strlen计算不包括终止null字节的字符串长度,而sizeof则计算包括终止null字节的缓冲区长度
* 父子进程
子进程和父进程继续执行fork调用之后的指令。子进程是父进程的副本,子进程获得父进程数据空间/堆和栈的副本。
注意,
这是子进程拥有的副本。父,子进程并不共享这些存储空间部分。父,子进程共享正文段。
文件描述符共享