The UNIX and Linux Forums  
Hallo und herzlich Willkommen aus den Vereinigten Staaten, die UNIX-und Linux-Foren! Vielen Dank für Ihren Besuch und die Teilnahme an unserem Global Community.

Go Back   Die UNIX-und Linux-Foren > Top Foren > High-Level-Programmierung
.
Google unix.com



High-Level-Programmierung Post Fragen zu C, C + +, Java, SQL, und andere Programmiersprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Dateisystem Größe magasem AIX 7 02-06-2008 04:21 AM
Erhöhung root-Dateisystem Größe in Solaris sriram.s SUN Solaris 4 04-02-2007 04:28 AM
Erhöhung der UFS-Dateisystem Größe in Solaris BG_JrAdmin UNIX for Dummies Questions & Answers 6 12-01-2005 04:56 AM
Datei-Größe ändern jvinn UNIX für Fortgeschrittene und Experten 9 05-11-2005 07:13 PM
Freie Größe für Datei-System videsh77 UNIX for Dummies Questions & Answers 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 02-13-2008
lucaxvu lucaxvu is offline
Registrierte Nutzer
  
 

Join Date: Feb 2008
Beiträge: 2
how, um die Datei herunterzuladen Größe

Ich habe den nächsten Code und die Ausgabe incosistent, was ist das Problem:

freien Blöcke: 1201595
Blockgröße: 4096
Gesamtgröße (freien Blöcke * Blockgröße): 626765824

1201595 * 4096 nicht, ist 626765824, was ist das Problem?

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

int main () (

struct statvfs Puffer;
int status;
int free_blk;
int blk_size;

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

printf ( "freien Blöcke:% u \ n", buffer.f_bavail);
printf ( "Blockgröße:% u \ n", buffer.f_bsize);

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

Thks
  #2 (permalink)  
Old 02-13-2008
Franklin52 Franklin52 is offline Forum Staff  
Moderator
  
 

Join Date: Feb 2007
Posts: 4312
Das Problem ist ein Integer-Überlauf.
Deklarieren Sie die Variablen free_blk und blk_size so lange, und ändern Sie das Format der letzten printf-Anweisung wie folgt:

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;
}
Grüße
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 09:58 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0