C ++ setvbuf () - Βασική βιβλιοθήκη C ++

Η συνάρτηση setvbuf () στο C ++ χρησιμοποιείται για να αλλάξει ή να καθορίσει τη λειτουργία προσωρινής αποθήκευσης και το μέγεθος του buffer.

πρωτότυπο setvbuf ()

 int setvbuf (FILE * stream, char * buffer, int mode, size_t size);

Η setvbuf()συνάρτηση αλλάζει τη λειτουργία προσωρινής αποθήκευσης της δεδομένης ροής αρχείων στην τιμή της λειτουργίας.

Εάν το buffer δεν είναι μηδενικό, το μέγεθος του buffer είναι μέγεθος, διαφορετικά η λειτουργία εκχωρεί αυτόματα ένα buffer (με βάση την τιμή του μεγέθους).

Ορίζεται στο αρχείο κεφαλίδας.

setvbuf () Παράμετροι

  • stream: Μια ροή αρχείων.
  • buffer: Δείκτης στο buffer για χρήση από τη ροή.
  • mode: Λειτουργία Buffering. Οι τύποι λειτουργιών προσωρινής αποθήκευσης είναι:
    • _IOFBF: πλήρης buffering
    • _IOLBF: buffering γραμμής
    • _IONBF: χωρίς buffering
  • size: Το μέγεθος του buffer σε byte.

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

Η setvbuf()συνάρτηση επιστρέφει μηδέν στην επιτυχία και μη μηδέν στην αποτυχία.

Παράδειγμα: Πώς λειτουργεί η συνάρτηση setvbuf ()

 #include #include #define SIZE 1024 using namespace std; int main() ( char buffer(SIZE) = "… "; char str() = "This is first lineThis is second line"; FILE *fp = fopen("test.txt","wb+"); /* no buffering, buffer remains unchanged */ setvbuf(fp,buffer,_IONBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; /* line buffering, only a single line is buffered */ setvbuf(fp,buffer,_IOLBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; /* full buffering, all the contents are buffered */ setvbuf(fp,buffer,_IOFBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; fclose(fp); return 0; )

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

… Αυτή είναι η δεύτερη γραμμή Αυτή είναι η πρώτη γραμμή Αυτή είναι η δεύτερη γραμμή

ενδιαφέροντα άρθρα...