Scrivi su File in C
-
Utilizzare la funzione
fwrite
per scrivere su file in C -
Usa la funzione
write
per scrivere su file in C
Questo articolo illustrerà più metodi su come scrivere su file in C.
Utilizzare la funzione fwrite
per scrivere su file in C
La libreria I/O standard in C fornisce le funzioni principali per la lettura / scrittura dei file, vale a dire fread
e fwrite
. fwrite
richiede quattro argomenti, un puntatore void
da cui dovrebbero essere ottenuti i dati, dimensione e numero di elementi di dati al puntatore dato, e un puntatore FILE*
per il flusso del file di output.
Notare che il flusso di file dovrebbe essere aperto prima con la funzione fopen
, che prende il nome del file con la modalità desiderata e restituisce FILE*
. In questo caso, usiamo la modalità w+
per aprire il file in lettura e scrittura. Attenzione però, se il file non esiste, ne viene creato uno nuovo con il nome dato. Successivamente, controlleremo se il puntatore del flusso di file restituito è valido. In caso contrario, stamperà il messaggio di errore corrispondente e uscirà dal programma. Una volta verificato il puntatore del flusso di file, è possibile chiamare la funzione fwrite
. Tieni presente che dovresti chiudere il file con la funzione fclose
prima che il programma esca.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const char* str = "Temporary string to be written to file!";
int main(void) {
const char* filename = "out.txt";
FILE* output_file = fopen(filename, "w+");
if (!output_file) {
perror("fopen");
exit(EXIT_FAILURE);
}
fwrite(str, 1, strlen(str), output_file);
printf("Done Writing!\n");
fclose(output_file);
exit(EXIT_SUCCESS);
}
Usa la funzione write
per scrivere su file in C
In alternativa, possiamo usare write
, che è una chiamata di funzione conforme a POSIX che scrive il numero di byte specificato nel file a cui fa riferimento il descrittore di file. Notare che un descrittore di file è un numero intero associato ai flussi di file aperti. Per recuperare il descrittore, dovremmo chiamare la funzione open
con il percorso del nome del file. La funzione write
prende il descrittore di file come primo argomento e il buffer dei dati puntati da void*
come secondo. Il terzo argomento è il numero di byte da scrivere nel file, calcolato con la funzione strlen
nell’esempio seguente.
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
const char* str = "Temporary string to be written to file!";
int main(void) {
const char* filename = "out.txt";
int fd = open(filename, O_WRONLY);
if (fd == -1) {
perror("open");
exit(EXIT_FAILURE);
}
write(fd, str, strlen(str));
printf("Done Writing!\n");
close(fd);
exit(EXIT_SUCCESS);
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook