|
|
|
|
site google
|
|||||||
| Fóruns | Registar | Blog | Man Pages | Fórum Regimento | Ligações | Álbuns | FAQ | Usuários | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Post perguntas sobre C, C + +, Java, SQL, e outras linguagens de programação aqui. |
![]() |
|
|
Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|||
|
Como obter tamanho de espaço livre em disco em C / C + + programa (sistema solar)?
Existe alguma norma função ou sistema funcionar? Assim como "df" ou "getdfree" no Linux. |
| Links Patrocinados | ||
|
|
|
|||
|
Necessário para escrever algo para obter informações dos discos e enviá-lo para um aplicativo da Web, então aqui está o código (o material removido html), isto deve dar-lhe a informação (sobre os nossos trabalhos AIX servidores pelo menos). A única coisa que faz é dar um valor ligeiramente mais elevado do que o espaço livre df, não certo do que está causando isso. Código:
/*
################################################################################
## diskstat.c ##
################################################################################
## diskstat returns (or will soon return to be more precice) webified diskstat for specific disk, should change to ##
## XML'ified info at some point..... ##
################################################################################
*/
#include <sys/statvfs.h>
int main( int argc, char *argv[] )
{
struct statvfs fiData;
struct statvfs *fpData;
char fnPath[128];
int i;
if( argc < 2 ) {
printf("Usage, webdisk DEVICE0 ..... DEVICEX\n");
return(2);
}
//Lets loopyloop through the argvs
for( i = 1 ; i<argc; i++ ) {
strcpy(fnPath, argv[i]);
if((statvfs(fnPath,&fiData)) < 0 ) {
printf("Failed to stat %s:\n", fnPath);
} else {
printf("Disk %s: \n", fnPath);
printf("\tblock size: %u\n", fiData.f_bsize);
printf("\ttotal no blocks: %i\n", fiData.f_blocks);
printf("\tfree blocks: %i\n", fiData.f_bfree);
}
}
}Para os demais membros da struct, verifique sys / statvfs.h. Basta compilar e enviar-lhe o mountpoint do disco. Assim, por exemplo. / A.out / BTW Graças maçarico para apontar-me na direcção certa Com statvls. |
|
|||
|
oi,
i ter escrito o código para encontrar um espaço livre para o Linux utilizando código nativo do Java como abaixo. # include <sys/statvfs.h> JNIEXPORT jlong JNICALL Java_NativeUtils_getDiskFreeSpace (JNIEnv * env, jclass obj, jstring caminho) ( struct statvfs fiData; struct statvfs * fpData; / / char fnPath [128]; int i; const char * str \u003d (* env) -> GetStringUTFChars (env, path, 0); jlong ret; if ((statvfs (str, & fiData)) <0) ( printf ( "Failed to stat% s: \ n", str); ) Else ( printf ( "\ tblock size:% u \ n", fiData.f_bsize); ) (* env) -> ReleaseStringUTFChars (env, o trajeto, str); ret \u003d (jlong) fiData.QuadPart; return ret; ) se uma pessoa está com o SO Linux e pode u por favor teste e voltar para mim obrigado, Prasad |
|
|||
|
Eu usei o código e compliled ur-lo usando compilador gcc no Linux. Mas o seu dando o seguinte erro.
error: `JNIEXPORT" não nomeia um tipo qualquer solução para que? |
| Links Patrocinados | ||
|
|
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| libertar algum espaço no sistema de arquivos | fu4d | UNIX para Dummies Perguntas & Respostas | 6 | 04-11-2008 05:27 |
| comando para encontrar espaço livre em disco no solaris | harishankar | Solaris | 2 | 08-26-2007 12:47 |
| Como re-alocar o espaço em disco para o Solaris 10 | duke0001 | UNIX & avançada para usuários experientes | 2 | 12-13-2006 11:14 |
| espaço livre em disco calc | ninjanesto | Programação | 1 | 11-10-2006 11:03 |
| Livre para o tamanho do sistema de arquivos | videsh77 | UNIX para Dummies Perguntas & Respostas | 7 | 02-03-2005 06:44 |