C είσοδος/έξοδος αρχείων: Διαφορά μεταξύ των αναθεωρήσεων
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Ggia (συζήτηση | συνεισφορές) |
Ggia (συζήτηση | συνεισφορές) Χωρίς σύνοψη επεξεργασίας |
||
Γραμμή 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" (=
Η λειτουργικότητα εισόδου-εξόδου της C είναι χαμηλού επιπέδου συγκρινόμενη με τα σύγχρονες βιβλιοθήκες. Σήμερα οι λειτουργίες προσπέλασης αρχείων γίνεται με αφαιρετικές δομές ροών δεδομένων (bytes) ''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>
|
|-
| {{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 χρησιμοποιώντας μια μεταβλητή λίστα παραμέτρων
|-
| {{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>
|
|-
| {{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 χρησιμοποιώντας μεταβλητή λίστα παραμέτρων
|-
! rowspan=5 | File positioning
|