table of contents
mincore(2) | System Calls Manual | mincore(2) |
NOMBRE¶
mincore - determina que páginas están en memoria
BIBLIOTECA¶
Biblioteca Estándar C (libc, -lc)
SINOPSIS¶
#include <sys/mman.h>
int mincore(void addr[.longitud], size_t longitud, unsigned char *vec);
mincore():
A partir de glibc 2.19:
_DEFAULT_SOURCE
Anteriores a glibc 2.19:
_BSD_SOURCE || _SVID_SOURCE
DESCRIPCIÓN¶
mincore() devuelve un vector que indica si las páginas de la memoria virtual del proceso que realiza la llamada residen en el núcleo (RAM).no causarán, por lo tanto, un acceso al disco (fallo de página) si se hace referencia a ellas. El núcleo devuelve información acerca de la ubicación sobre las páginas, comenzando en la dirección addr y continuando durante length bytes.
El argumento addr debe ser un múltiplo del tamaño de página del sistema. El argumento length no necesita ser un múltiplo del tamaño de página, pero dado que la información de ubicación se devuelve para páginas completas, length se redondeará al siguiente múltiplo del tamaño de página. Se puede obtener el tamaño de la página (PAGE_SIZE) usando sysconf(_SC_PAGESIZE).
El argumento vec debe apuntar a un vector que contenga al menos (length+PAGE_SIZE-1) / PAGE_SIZE bytes. Al retornar, se establecerá el bit menos significativo de cada byte si la página correspondiente reside actualmente en memoria; en caso contrario, se borrará. (La configuración de los demás bits de cada byte no está definida, reservándose para un posible uso posterior). Por supuesto, la información retornada en vec es solo una instantánea: las páginas que no están bloqueadas en memoria pueden aparecer y desaparecer en cualquier momento, y el contenido de vec podría estar obsoleto al regresar esta llamada.
VALOR DEVUELTO¶
En caso de éxito, mincore() devuelve cero. En caso de error, se devuelve -1, y se define errno con el valor correspondiente.
ERRORES¶
EAGAIN el núcleo se ha quedado temporalmente sin recursos.
- EFAULT
- vec apunta a una dirección inválida.
- EINVAL
- add no es múltiplo del tamaño de página.
- ENOMEM
- length es mayor que (TASK_SIZE - addr). (Esto podría ocurrir si se define un valor negativo para length, ya que se interpretará como un entero grande sin signo). En Linux 2.6.11 y versiones anteriores, se devolvía el error EINVAL para esta condición.
- ENOMEM
- addr a addr + length contiene memoria sin ubicar.
ESTÁNDARES¶
Ninguno.
HISTORIAL¶
Linux 2.3.99pre1, glibc 2.2.
Apareció por primera vez en 4.4BSD.
NetBSD, FreeBSD, OpenBSD, Solaris 8, AIX 5.1, SunOS 4.1.
ERRORES¶
Antes de Linux 2.6.21, mincore() no devolvía información correcta para las asignaciones de MAP_PRIVATE ni para las asignaciones no lineales (establecidas mediante remap_file_pages(2)).
VÉASE TAMBIÉN¶
fincore(1), madvise(2), mlock(2), mmap(2), posix_fadvise(2), posix_madvise(3)
TRADUCCIÓN¶
La traducción al español de esta página del manual fue creada por Miguel Pérez Ibars <mpi79470@alu.um.es> y Marcos Fouces <marcos@debian.org>
Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish@lists.debian.org.
2 Mayo 2024 | Páginas de Manual de Linux 6.9.1 |