C είσοδος/έξοδος αρχείων: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Χωρίς σύνοψη επεξεργασίας
Γραμμή 1:
Η γλώσσα προγραμματισμού C παρέχει μια [[Πρότυπη βιβλιοθήκη|πρότυπη βιβλιοθήκη]] με συναρτήσεις για προσπέλαση αρχείων. Αυτές οι συναρτήσεις βρίσκονται στο αρχείο επικεφαλίδας <code><stdio.h></code>.<ref>{{cite book | url=http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf | title=ISO/IEC 9899:1999 specification | at=p. 274, § 7.19}}</ref>. Αυτή η συλλογή συναρτήσεων προέρχεται από την βιβλιοθήκη "portable I/O package" (=φορηήφορητή βιβλιοθήκη συναρτήσεων εισόδου/εξόδου) του Mike Lesk από τα εργαστήρια της Bell αρχές της δεκαετίας του 1970 <ref>{{cite book|last=Kernighan|first=Brian|authorlink=Brian Kernighan|coauthors=Rob Pike|title=The UNIX Programming Environment|publisher=Prentice Hall|location=Englewood Cliffs|year=1984|page=200}}</ref>.
 
Η λειτουργικότητα εισόδου-εξόδου της C είναι χαμηλού επιπέδου συγκρινόμενη με τα σύγχρονες βιβλιοθήκες. Σήμερα οι λειτουργίες προσπέλασης αρχείων γίνεται με αφαιρετικές δομές ροών δεδομένων (bytes) ''streams'' εισόδου ή εξόδου. Σε αντίθεση με ορισμένες μεταγενέστερες γλώσσες προγραμματισμού η γλώσσα C δεν έχει απευθείας δυνατότητα τυχαίας προσπέλασης αρχείων δεδομένων. Για να διαβαστεί η πληροφορία στο κέντρο του αρχείου ο προγραμματιστής θα πρέπει να δημιουργήσει μια ροή δεδομένων (stream) και στην συνέχεια να προσπελάσει το σημείο αυτό.
The I/O functionality of C is fairly low-level by modern standards; C abstracts all file operations into operations on [[stream (computing)|stream]]s of [[byte]]s, which may be "input streams" or "output streams". Σε αντίθεση με ορισμένες μεταγενέστερες γλώσσες προγραμματισμού η γλώσσα C δεν έχει απευθείας δυνατότητα τυχαίας προσπέλασης αρχείων δεδομένων. Για να διαβαστεί η πληροφορία στο κέντρο του αρχείου ο προγραμματιστής θα πρέπει να δημιουργήσει μια ροή δεδομένων (stream) και στην συνέχεια να προσπελάσει το σημείο αυτό.
 
Το μοντέλο με τις ροές δεδομένων για είσοδο/έξοδο αρχείων έχει χρησιμοποιηθεί στο λειτουργικό σύστημα Unix το οποίο έχει υλοποιηθεί σε γλώσσα προγραμματισμού C. Αρκετά σύγχρονα λειτουργικά συστήματα έχουν κληρονομήσει τις ροές δεδομένων του Unix και πολλές γλώσσες προγραμματισμού της κατηγορίας γλωσσών C έχουν κληρονομήσει την διεπαφή ροών δεδομένων της C (για παράδειγμα η γλώσσα σεναρίων [[PHP]]). Η γλώσσα προγραμματισμού C++ στην πρότυπη βιβλιοθήκη χρησιμοποιεί την ιδέα της ροής δεδομένων στο συντακτικό των βιβλιοθηκών όπως της [[iostream]].
Γραμμή 86 ⟶ 85 :
| {{anchor|scanf|fscanf|sscanf}}<code>[http://en.cppreference.com/w/c/io/scanf scanf]</code><br><code>[http://en.cppreference.com/w/c/io/fscanf fscanf]</code><br><code>[http://en.cppreference.com/w/c/io/sscanf sscanf]</code>
| {{anchor|wscanf|fwscanf|swscanf}}<code>[http://en.cppreference.com/w/c/io/wscanf wscanf]</code><br><code>[http://en.cppreference.com/w/c/io/fwscanf fwscanf]</code><br><code>[http://en.cppreference.com/w/c/io/swscanf swscanf]</code>
| readsδιαβάζει formattedτην φορμαρισμένη είσοδο byte/<code>wchar_t</code> inputαπό fromτην stdinπροκαθορισμένη είσοδο,<br>aροή δεδομένων fileαρχείου streamή orενταμιευτή a- buffer
|-
| {{anchor|vscanf|vfscanf|vsscanf}}<code>[http://en.cppreference.com/w/c/io/vscanf vscanf]</code><br><code>[http://en.cppreference.com/w/c/io/vfscanf vfscanf]</code><br><code>[http://en.cppreference.com/w/c/io/vsscanf vsscanf]</code>
| {{anchor|vwscanf|vfwscanf|svwscanf}}<code>[http://en.cppreference.com/w/c/io/vwscanf vwscanf]</code><br><code>[http://en.cppreference.com/w/c/io/vfwscanf vfwscanf]</code><br><code>[http://en.cppreference.com/w/c/io/vswscanf vswscanf]</code>
| διαβάζει την φορμαρισμένη είσοδο byte/<code>wchar_t</code> από την προκαθορισμένη είσοδο stdin,<br>ροή δεδομένων αρχείου ή ένα ενταμιευτή - buffer χρησιμοποιώντας μια μεταβλητή λίστα παραμέτρων
| reads formatted input byte/<code>wchar_t</code> from stdin,<br>a file stream or a buffer using variable argument list
|-
| {{anchor|printf|fprintf|sprintf|snprintf}}<code>[http://en.cppreference.com/w/c/io/printf printf]</code><br><code>[http://en.cppreference.com/w/c/io/fprintf fprintf]</code><br><code>[http://en.cppreference.com/w/c/io/sprintf sprintf]</code><br><code>[http://en.cppreference.com/w/c/io/snprintf snprintf]</code>
| {{anchor|wprintf|fwprintf|swprintf}}<code>[http://en.cppreference.com/w/c/io/wprintf wprintf]</code><br><code>[http://en.cppreference.com/w/c/io/fwprintf fwprintf]</code><br><code>[http://en.cppreference.com/w/c/io/swprintf swprintf]</code>
| printsτυπώνει formattedφορμαρισμένη byte/<code>wchar_t</code> outputέξοδο toστην προκαθορισμένη έξοδο stdout,<br>aροή δεδομένων fileή streamένα orενταμιευτή a- buffer
|-
| {{anchor|vprintf|vfprintf|vspritf|vsnprintf}}<code>[http://en.cppreference.com/w/c/io/vprintf vprintf]</code><br><code>[http://en.cppreference.com/w/c/io/vfprintf vfprintf]</code><br><code>[http://en.cppreference.com/w/c/io/vsprintf vsprintf]</code><br><code>[http://en.cppreference.com/w/c/io/vsnprintf vsnprintf]</code>
| {{anchor|vwprintf|vfwprintf|vswprintf}}<code>[http://en.cppreference.com/w/c/io/vwprintf vwprintf]</code><br><code>[http://en.cppreference.com/w/c/io/vfwprintf vfwprintf]</code><br><code>[http://en.cppreference.com/w/c/io/vswprintf vswprintf]</code>
| τυπώνει την φορμαρισμένη έξοδο byte/<code>wchar_t</code> στην προκαθορισμένη έξοδο stdout,<br>ροή δεδομένων ή ένα ενταμιευτή - buffer χρησιμοποιώντας μεταβλητή λίστα παραμέτρων
| prints formatted byte/<code>wchar_t</code> output to stdout,<br>a file stream, or a buffer using variable argument list
|-
! rowspan=5 | File positioning