Quiero encontrar el tamaño del archivo en el disco en el sistema operativo Linux. Sé el comando para hacerlo: du -s -h¿Cómo obtener el tamaño de archivo en el disco en Linux?
¿Hay alguna manera de encontrarlo usando el código c/C++?
Quiero encontrar el tamaño del archivo en el disco en el sistema operativo Linux. Sé el comando para hacerlo: du -s -h¿Cómo obtener el tamaño de archivo en el disco en Linux?
¿Hay alguna manera de encontrarlo usando el código c/C++?
Sí, utilizar la llamada stat(2)
sistema:
#include <sys/stat.h>
...
struct stat statbuf;
if (stat("file.dat", &statbuf) == -1) {
/* check the value of errno */
}
printf("%9jd", (intmax_t) statbuf.st_size);
Mi entendimiento es que el disco duro es un dispositivo de bloque, de forma aunque escribo sólo 10 bytes en un archivo, el núcleo asignará bloques para el archivo en términos de block_size. es decir (512 bytes). Supongamos que el disco tiene un tamaño total de 1 KB y hemos creado 2 archivos de 10 bytes cada uno, entonces el disco está lleno o no. Estoy en lo correcto ? – Ashish
En Linux, la mayoría de los sistemas de archivos usan un tamaño de bloque de 4 KB (es decir, cada bloque fs consta de 8 bloques de 512 bytes en el dispositivo), por lo que no cabrían bloques en un sistema de archivos de 1KB (sin tener en cuenta la sobrecarga de metadatos, etc.). – janneb
lo sé, he dado 1 KB solo por ejemplo. gracias tengo mi respuesta. – Ashish