The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > High Level Programming
.
google unix.com



High Level Programming Posez vos questions à propos de C, C + +, Java, SQL, et d'autres langages de programmation ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
système de fichiers de taille magasem AIX 7 02-06-2008 04:21 AM
augmenter la taille du système de fichiers racine dans solaris sriram.s SUN Solaris 4 04-02-2007 03:28 AM
augmenter la taille du système de fichiers UFS de Solaris BG_JrAdmin UNIX pour les nuls Questions et réponses 6 12-01-2005 04:56 AM
Système de changement de taille de fichier jvinn UNIX for Advanced & Expert Users 9 05-11-2005 06:13 PM
Free taille pour le système de fichiers videsh77 UNIX pour les nuls Questions et réponses 7 02-03-2005 06:44 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 02-13-2008
lucaxvu lucaxvu is offline
Registered User
  
 

Join Date: Feb 2008
Messages: 2
comment obtenir le système de fichiers de taille

J'ai le code suivant, et la sortie est incosistent, quel est le problème:

libre blocs: 1201595
block size: 4096
taille totale (sans blocs de la taille des blocs *): 626765824

1201595 * 4096 n'est pas 626765824, quel est le problème?

# include <sys/statvfs.h>
# include <stdio.h>

int main () (

struct statvfs buffer;
int status;
int free_blk;
int blk_size;

status \u003d statvfs ("/", & buffer);

printf ( "libre de blocs:% u \ n", buffer.f_bavail);
printf ( "taille de bloc:% u \ n", buffer.f_bsize);

free_blk \u003d buffer.f_bavail;
blk_size \u003d buffer.f_bsize;
printf ( "taille:% u \ n", free_blk * blk_size);
return 0;
)

Thks
  #2 (permalink)  
Old 02-13-2008
Franklin52 Franklin52 is online now Forum Staff  
Modérateur
  
 

Join Date: Feb 2007
Posts: 4307
Le problème, c'est un dépassement d'entier.
Déclarez les variables free_blk et blk_size aussi longtemps et de changer le format de la dernière printf comme suit:

Code:
#include <sys/statvfs.h>
#include <stdio.h>

int main(){

  struct statvfs buffer;
  int status;
  long free_blk;
  long blk_size;

  status = statvfs("/", &buffer);

  printf("free blocks: %u\n",buffer.f_bavail);
  printf("block size: %u\n",buffer.f_bsize);

  free_blk = buffer.f_bavail;
  blk_size = buffer.f_bsize;
  printf("total size: %Ld\n",free_blk*blk_size);
  return 0;
}
Observe
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 09:51 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0