BRK.2
资源名称:os_source.zip [点击查看]
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:2k
源码类别:
操作系统开发
开发平台:
C/C++
- BRK(2) Minix Programmer's Manual BRK(2)
- NAME
- brk, sbrk - change data segment size
- SYNOPSIS
- #include <unistd.h>
- char *brk(char *addr)
- char *sbrk(int incr)
- DESCRIPTION
- Brk sets the system's idea of the lowest data segment location not used
- by the program (called the break) to addr. Locations greater than addr
- and below the stack pointer are not in the address space and will thus
- cause a memory violation if accessed.
- In the alternate function sbrk, incr more bytes are added to the
- program's data space and a pointer to the start of the new area is
- returned.
- When a program begins execution via execve the break is set at the
- highest location defined by the program and data storage areas.
- Ordinarily, therefore, only programs with growing data areas need to use
- sbrk.
- RETURN VALUE
- The address of the new break is returned if brk succeeds; -1 if the
- program requests more memory than the system limit. Sbrk returns -1 if
- the break could not be set.
- ERRORS
- Sbrk will fail and no additional memory will be allocated if one of the
- following are true:
- [ENOMEM] The maximum possible size of a data segment (as set by
- chmem(1)) was exceeded.
- [ENOMEM] Insufficient virtual memory space existed to support the
- expansion. (Minix-vmd)
- SEE ALSO
- chmem(1), execve(2), malloc(3), end(3).
- NOTES
- Minix-vmd rounds a small data segment limit up to 3 megabytes.
- 4BSD May 22, 1986 1
- BRK(2) Minix Programmer's Manual BRK(2)
- BUGS
- Setting the break may fail due to a temporary lack of virtual memory
- under Minix-vmd. It is not possible to distinguish this from a failure
- caused by exceeding the maximum size of the data segment.
- 4BSD May 22, 1986 2