Skip to main content

Ioctl - εντολή Linux - εντολή Unix

fd, dup()/dup2() system call tutorial (Ιούνιος 2026)

fd, dup()/dup2() system call tutorial (Ιούνιος 2026)
Anonim

ioctl - συσκευή ελέγχου

Σύνοψη

#περιλαμβάνω

int ioctl (int ρε , int αίτηση , …);

Περιγραφή

οioctl λειτουργία χειρίζεται τις παραμέτρους της συσκευής των ειδικών αρχείων. Συγκεκριμένα, πολλά λειτουργικά χαρακτηριστικά ειδικών αρχείων χαρακτήρων (π.χ. τερματικά) μπορούν να ελέγχονται μεioctl αιτήσεων. Η διένεξη ρε πρέπει να είναι ένας ανοικτός περιγραφέας αρχείων.

Το δεύτερο επιχείρημα είναι ένας κωδικός αιτήματος που εξαρτάται από τη συσκευή. Το τρίτο επιχείρημα είναι ένας άγνωστος δείκτης στη μνήμη. Είναι παραδοσιακάchar * argp (από τις προηγούμενες ημέρεςκενό * ήταν έγκυρο Γ), και θα ονομαστεί για αυτή τη συζήτηση.

Ένα ioctl αίτηση έχει κωδικοποιήσει σε το αν το επιχείρημα είναι ένα σε παράμετρος ή έξω την παράμετρο και το μέγεθος του όρου argp σε byte. Μακροεντολές και ορισμοί που χρησιμοποιούνται για τον προσδιορισμό ενός ioctl αίτηση βρίσκονται στο αρχείο .

Τιμή επιστροφής

Συνήθως, στην επιτυχία επιστρέφεται το μηδέν. Μερικά ioctls χρησιμοποιούν την τιμή επιστροφής ως παράμετρο εξόδου και επιστρέφουν μια μη αρνητική τιμή στην επιτυχία. Σε σφάλμα, επιστρέφεται η τιμή -1 και errno ορίζεται σωστά.

Λάθη

EBADF

ρε δεν είναι έγκυρος περιγραφέας.

EFAULT

argp αναφέρεται σε μια μη προσπελάσιμη περιοχή μνήμης.

ENOTTY

ρε δεν συσχετίζεται με μια ειδική συσκευή χαρακτήρων.

ENOTTY

Το συγκεκριμένο αίτημα δεν ισχύει για το είδος του αντικειμένου που περιγράφει ο περιγραφέας ρε βιβλιογραφικές αναφορές.

EINVAL

Αίτηση ή argp δεν είναι έγκυρη.

Σύμφωνα με το

Δεν υπάρχει ενιαίο πρότυπο. Τα επιχειρήματα, οι επιστροφές και η σημασιολογία τουioctl(2) ποικίλλει ανάλογα με το συγκεκριμένο πρόγραμμα οδήγησης συσκευής (η κλήση χρησιμοποιείται ως ένα catch-all για λειτουργίες που δεν ταιριάζουν καθαρά στο μοντέλο εισόδου / εξόδου Unix). οioctl κλήση λειτουργίας εμφανίστηκε στην Έκδοση 7 AT & T Unix.