BRK.2
资源名称:os_source.zip [点击查看]
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:2k
源码类别:
操作系统开发
开发平台:
C/C++
- ." Copyright (c) 1980 Regents of the University of California.
- ." All rights reserved. The Berkeley software License Agreement
- ." specifies the terms and conditions for redistribution.
- ."
- ." @(#)brk.2 6.3 (Berkeley) 5/22/86
- ."
- .TH BRK 2 "May 22, 1986"
- .UC 4
- .SH NAME
- brk, sbrk - change data segment size
- .SH SYNOPSIS
- .nf
- #include <unistd.h>
- .PP
- .ft B
- char *brk(char *fIaddrfP)
- .PP
- .ft B
- char *sbrk(int fIincrfP)
- .fi
- .SH DESCRIPTION
- .B Brk
- sets the system's idea of the lowest data segment
- location not used by the program (called the break)
- to
- .IR addr .
- Locations greater than
- .I addr
- and below the stack pointer
- are not in the address space and will thus
- cause a memory violation if accessed.
- .PP
- In the alternate function
- .BR sbrk ,
- .I incr
- more bytes are added to the
- program's data space and a pointer to the
- start of the new area is returned.
- .PP
- When a program begins execution via
- .B 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
- .BR sbrk .
- .SH "RETURN VALUE
- The address of the new break is returned if
- .B brk
- succeeds;
- .B -1
- if the program requests more
- memory than the system limit.
- .B Sbrk
- returns
- .B -1
- if the break could not be set.
- .SH ERRORS
- .B Sbrk
- will fail and no additional memory will be allocated if
- one of the following are true:
- .TP 15
- [ENOMEM]
- The maximum possible size of a data segment (as set by
- .BR chmem (1))
- was exceeded.
- .TP 15
- [ENOMEM]
- Insufficient virtual memory space existed
- to support the expansion. (Minix-vmd)
- .SH "SEE ALSO"
- .BR chmem (1),
- .BR execve (2),
- .BR malloc (3),
- .BR end (3).
- .SH NOTES
- Minix-vmd rounds a small data segment limit up to 3 megabytes.
- .SH 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.