Fichier spécial cd

Objectif

Permet d'accéder au pilote de périphérique de CD-ROM.

Descriptif

Le fichier spécial CD-ROM fournit un accès en bloc et en caractères (bruts) aux disques des unités de CD-ROM.

Le préfixe R sur un nom de fichier spécial signifie que l'unité est accessible en tant qu'unité en mode brut et non en tant qu'unité par bloc. L'exécution d'E-S brutes avec un disque compact nécessite les performances de tous les transferts de données en multiples de la longueur de bloc logique du disque compact. En outre, toutes les sous-routines Lseek destinées au pilote d'unité de CD-ROM brut doivent définir le pointeur de décalage de fichier sur une valeur qui est un multiple de la taille de bloc logique spécifiée.

Pilotes de périphérique de CD-ROM

Les disques compacts, utilisés dans les pilotes de périphérique de CD-ROM, sont des supports en lecture seule qui fournissent un stockage pour de grandes quantités de données. Les fichiers spéciaux /dev/cd0, /dev/cd1, ... de fournir un accès par bloc aux disques compacts. Les fichiers spéciaux /dev/rcd0, /dev/rc1, ... fournir un accès aux caractères.

Lorsqu'un disque CD-ROM est éjecté de l'unité pour un système de fichiers CD-ROM monté, les fichiers du disque compact ne sont plus accessibles. Pour que ces fichiers soient accessibles à nouveau, les systèmes de fichiers montés à partir du CD-ROM doivent être démontés. Les processus dont les fichiers sont ouverts sur ces systèmes de fichiers doivent être quittés. Les processus comportant des répertoires en cours sur ces systèmes de fichiers doivent être déplacés. Si ces actions ne fonctionnent pas, effectuez un démontage forcé.

Un autre problème résultant de l'éjection du disque CD-ROM pour un système de fichiers CD-ROM monté est que la commande homme peut ne plus répondre. La réinsertion du CD-ROM ne résout pas le problème. Tous les processus (graphiques et ASCII) doivent être quittés et le système de fichiers doit être démonté et monté à nouveau. Par la suite, toutes les commandes homme peuvent être redémarrées.

Sous-routines dépendantes de l'unité

La plupart des opérations de CD-ROM sont implémentées à l'aide des sous-routines ouvrir, lectureet fermer . Toutefois, pour certaines raisons, l'utilisation de la sous-routine openx (étendue) est requise.

Article Descriptif
Sous-routine openx La sous-routine openx est prise en charge pour fournir des fonctions supplémentaires à la séquence ouverte. Le sous-programme openx requiert les droits appropriés pour démarrer. Toute tentative d'exécution de cette sous-routine sans l'autorisation appropriée entraîne une valeur de retour de -1, avec la variable globale errno définie sur EPERM.
Sous-routine ioctl L'opération ioctl IOCINFO est définie pour tous les pilotes de périphérique qui utilisent la sous-routine ioctl . Les opérations ioctl restantes sont toutes des opérations spécifiques à une unité de volume physique. Le mode diagnostic n'est pas requis pour l'opération suivante. L'opération IOCINFO renvoie une structure devinfo , qui est définie dans le fichier devinfo.h .

Codes d'erreur

Outre les codes d'erreur répertoriés pour les sous-routines ioctl, ouvrir, lectureet écriture , les codes d'erreur suivants sont également possibles:

Article Descriptif
EACCES Une sous-routine autre que ioctl ou fermer a été tentée en mode diagnostic.
EACCES Un appel lecture normal a été tenté en mode diagnostic.
VALEUR EFAULT Adresse utilisateur non admise.
EBUSY L'unité cible est réservée par un autre initiateur.
EINVAL L'unité a été ouverte avec un mode autre que lecture seule.
EINVAL Un paramètre noctet d'une sous-routine lecture n'est pas un multiple pair de la taille de bloc.
EINVAL Une longueur de mémoire tampon de données d'analyse supérieure à 255 n'est pas admise pour une opération ioctl CDIOCMD .
EINVAL Une longueur de mémoire tampon de données supérieure à celle autorisée par l'unité n'est pas valide pour une opération CDIOCMD ioctl.
EINVAL Une tentative de configuration d'une unité toujours ouverte a été effectuée.
EINVAL Une commande de configuration non conforme a été indiquée.
FICHIER EMFILE Un appel ouvrir a été tenté pour un adaptateur SCSI qui possède déjà le nombre maximal autorisé d'unités ouvertes.
ENOTREADY Il n'y a pas de disque compact dans l'unité.
ENODEV Une tentative d'accès à une unité non définie a été effectuée.
ENODEV Une tentative de fermeture d'une unité qui n'a pas été définie a été effectuée.
EMEDIA Le support a été modifié.
EIO Erreur matérielle, commande abandonnée ou demande non conforme.
EIO Une tentative de lecture au-delà de la fin du support a été effectuée.
EPERM Ce sous-programme requiert les droits appropriés.
ESTALE Un disque CD-ROM a été éjecté (sans avoir d'abord été fermé par l'utilisateur), puis réinséré ou remplacé par un deuxième disque.
ETIMEDOUT Une opération d'E-S a dépassé la valeur de temporisateur indiquée.