¿Cuál de las siguientes funciones estándar de la biblioteca C invocará siempre una llamada al sistema cuando se ejecute desde un proceso de subproceso único en un sistema operativo UNIX/Linux?
(A) salir
(B) malloc
(C) dormir
(D) strlen
Respuesta: (A) (C)
Explicación:
- (A). salir de las funciones de la biblioteca C :
finaliza el proceso normalmente, realizando la limpieza regular para finalizar los programas. - (B). malloc :
esta es una función definida en la biblioteca C estándar y no siempre invoca la llamada del sistema. Cuando se crea un proceso, ya se le asigna cierta cantidad de memoria de almacenamiento dinámico, cuando se requiere expandir o reducir esa memoria, utiliza internamente la llamada al sistema sbrk/brk en Unix/Linux. - (C). sleep:
ni siquiera es una función de biblioteca C estándar, es una función de biblioteca C estándar POSIX que siempre invoca la llamada del sistema. - (D). strlen :
esta es una función definida en la biblioteca C estándar y no requiere ninguna llamada al sistema para realizar su función de calcular la longitud de la string.
Manera alternativa –
lib fun es compatible con el compilador, mientras que syscall es compatible con el sistema operativo.
A continuación se ilustran varias llamadas de sistema equivalentes para el sistema operativo UNIX:
1. Control de Procesos –
fork(), exit(), wait()
2. Gestión de archivos –
open(), read(), write(), close()
3. Gestión de dispositivos –
ioctl(), read(), write()
4. Mantenimiento de la información –
getpid(), alarm(), sleep(),
5. Comunicación –
pipe(), shm_open(), mmap()
6. Protección –
chmod(), umask(), chown()
Por lo tanto, exit() es la llamada al sistema de control de procesos y sleep() la llamada al sistema de mantenimiento de información en el sistema operativo UNIX.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA