Muchas personas piensan que los archivos son algunos de los datos almacenados en el disco, pero Linux utiliza un enfoque más abstracto. Resumen el dispositivo en un archivo. Un archivo de dispositivo tiene el mismo nombre de archivo, otro número de inodo, un propietario de archivo, un conjunto de bits de permiso y la hora de modificación más reciente, como un archivo normal. Todo lo que normalmente se entiende sobre el archivo se aplicará al terminal y otros dispositivos.
Los archivos ordinarios, es decir, los archivos de disco comúnmente utilizados están compuestos de bytes, y el número de bytes en el archivo de disco es el tamaño del archivo. El archivo del dispositivo es un enlace, no un contenedor. El teclado y el mouse no almacenan clics :) El i-nodo del archivo del dispositivo almacena un puntero a una subrutina del kernel, no el tamaño del archivo y la lista de almacenamiento. Una subrutina que transfiere datos de dispositivo en el kernel se denomina controlador de dispositivo.
La diferencia en el tipo de archivo se refleja en el i-node:
El i-node del archivo de disco contiene una lista de punteros al bloque de datos.
El i-node del archivo de dispositivo contiene un puntero al núcleo. Indicadores de controlador de dispositivo
Conexiones de disco y Conexiones de dispositivo
Las conexiones a archivos de disco generalmente contienen un búfer de núcleo, una propiedad como una conexión de disco con un búfer. La conexión al terminal es diferente, y el proceso debe transferir los datos lo antes posible.
En otras palabras, las propiedades de conexión de los dos son diferentes. Para una conexión específica de archivo y dispositivo, puede pensar en: 1. ¿Qué propiedades están conectadas? 2. ¿Cómo detectar el atributo actual? 3. ¿Cómo cambiar el atributo actual?
La respuesta a 2 y 3 es usar la llamada del sistema fcntl, el atributo del descriptor de archivo está codificado en un bit entero. Fcntl controla el descriptor de archivo leyendo y escribiendo los bits enteros.
Por ejemplo:
# include < fcntl.h >
int s;
s = fcntl (fd, F_GETFL);
s |
= OSYNC;
resultado = fcntl (fd, F_SETFL, s);
Lea la configuración del kernel a las variables, modifique el valor de la variable, devuelva la configuración al kernel, lea en Linux y Una forma típica de modificar las propiedades de conexión.
fcntl no es la única forma de configurar las propiedades del descriptor de archivos. Por lo general, cuando abre un archivo, debe saber qué configuraciones necesita. El sistema puede establecer las propiedades del descriptor de archivo llamando a una parte del segundo parámetro de abierto.
Tales como: fd = open (FILE, OWRONLY |
O_APPEND |
O_SYNC);
Greg Kroah-Hartman anunció hoy la séptima versión de Linux Kernel 3.15, que es más pequeña que la ve
ambiente experimental bajo Linux: Bajo Vbox, máquina virtual Rehat5 Uso del servidor Samba Obj
El comando pstree muestra la relación derivada entre procesos en un diagrama de árbol, y el
Archivo de directorio minimalista básico después de la producción exitosa Primero, el p
En ctags y Ubuntu taglist instalación, simplicidad
Linux compartido wifi a teléfono Android
habilidades de supervivencia [Consejos] Linux
Comunicación entre procesos en el entorno de Linux: tuberías y tuberías bien conocidas tuberías de
Sistema Linux Instalación de Linux Instalación de paquetes JDK
Generación y uso de bibliotecas estáticas bajo Linux
Instalación de xgcom de la herramienta de depuración del puerto serie de Linux
Busque el comando buscar, localizar, dónde está, que, escriba la diferencia en
Sincronización de semáforos para hilos de Linux
El sistema Win8 no suena después de instalar el controlador de la tarjeta de sonido cómo hacerlo
¿Cómo activar la interfaz de inicio de sesión oculta de Win10 Build 9926?
Win7 descarga al 99% para detener la capacidad de solución
Las habilidades del sistema para jugar Win8 vienen con la aplicación "foto"
Cómo configurar Thunder para descargar
El programa de menú de inicio del sistema Win7 muestra la cantidad de elementos en la solución
Consejo del sistema: el secreto detrás de la pantalla de inicio del sistema de Windows XP