brk(2) System Calls Manual brk(2) NOMBRE brk, sbrk - cambia el tamano del segmento de datos BIBLIOTECA Biblioteca Estandar C (libc, -lc) SINOPSIS #include int brk(void *direccon); void *sbrk(intptr_t incremento); Requisitos de Macros de Prueba de Caracteristicas para glibc (vease feature_test_macros(7)): brk(), sbrk(): A partir de glibc 2.19: _DEFAULT_SOURCE || ((_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200112L)) Desde glibc 2.12 hasta glibc 2.19: _BSD_SOURCE || _SVID_SOURCE || ((_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200112L)) Antes de glibc 2.12: _BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500 DESCRIPCION brk() y sbrk() cambian la ubicacion de la interrupcion del programa, que define el final del segmento de datos del proceso (es decir, la interrupcion del programa es la primera ubicacion despues del final del segmento de datos no inicializado). Si se aumenta la interrupcion del programa, se asignara memoria al proceso; si se disminuye, se liberara. brk() establece el final del segmento de datos al valor especificado por addr, cuando este valor es razonable, el sistema dispone de suficiente memoria y el proceso no excede su limite maximo para datos (vease setrlimit(2)). sbrk() aumenta el espacio de datos del programa en increment bytes. Se puede llamar a sbrk() con un increment de 0 para averiguar la direccion actual del comienzo de la zona de memoria dinamica del segumento de datos. VALOR DEVUELTO En caso de exito, brk() retorna cero. En caso de error se devuelve -1, y errno se define como ENOMEM. En caso de exito, sbrk() devuelve la interrupcion del programa anterior. (Si se aumento la interrupcion, este valor es un puntero al inicio de la memoria recien asignada). En caso de error, se devuelve (void *) -1 y errno se establece en ENOMEM. ESTANDARES Ninguno. HISTORIAL 4.3BSD; SUSv1, marcado a extinguir en SUSv2, eliminado en POSIX.1-2001. NOTAS Evite usar brk() y sbrk(): el paquete de asignacion de memoria malloc(3) es la forma mas comoda y portable de asignar memoria. Varios sistemas utilizan distintos tipos para el argumento de sbrk(). Los valores comunes son int, ssize_t, ptrdiff_t e intptr_t. Diferencias nucleo / biblioteca C El valor de retorno descrito anteriormente para brk() es el comportamiento proporcionado por la funcion contenedora de glibc para la llamada al sistema brk() de Linux. (En la mayoria de las demas implementaciones, el valor de retorno de brk() es el mismo; este valor de retorno tambien se especifico en SUSv2). Sin embargo, la llamada al sistema de Linux devuelve la nueva interrupcion del programa en caso de exito. En caso de error, la llamada al sistema devuelve la interrupcion actual. La funcion contenedora de glibc realiza una tarea (es decir, comprueba si la nueva interrupcion es menor que addr) para proporcionar los valores de retorno 0 y -1 descritos anteriormente. En Linux, sbrk() se implementa como una funcion de biblioteca que utiliza la llamada al sistema brk() y realiza la contabilidad interna para poder devolver el valor de interrupcion anterior. VEASE TAMBIEN execve(2), getrlimit(2), end(3), malloc(3) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Miguel Angel Sepulveda , Gerardo Aburruzaga Garcia , Miguel Perez Ibars y Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Paginas de Manual de Linux 6.15 17 Mayo 2025 brk(2)