Sponsored Content
Top Forums Programming How to get free disk space size in C/C++ program( Solaris system) Post 302086263 by vrghost on Wednesday 23rd of August 2006 09:30:25 AM
Old 08-23-2006
Needed to write something to get information from the disks and send it to a web app, so here is the code (the html stuff removed), this should give you the info (works on our AIX servers atleast). Only thing is it does give a slightly higher free space value than df, not certain what is causing it.

Code:
/*
################################################################################
##                              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);
                }
        }
}


For the other members of the struct, check sys/statvfs.h.

Just compile and send it the mountpoint of the disk.
So for example ./a.out /

BTW Thanks blowtorch for pointing me in the right direction whith statvls.
 

10 More Discussions You Might Find Interesting

1. Programming

free disk space calc

I everybody!! How can i use statvfs() to calculate disk usage and free disk space?? Im using this code: /* Any file on the filesystem in question */ char *filename = "/home/nesto/test/test.cpp"; struct statvfs buf; if (!statvfs(filename, &buf)) { ... (1 Reply)
Discussion started by: ninjanesto
1 Replies

2. Solaris

command to find free disk space on solaris

In linux df is the command to find free space what is the equivalent command in the Solaris (2 Replies)
Discussion started by: harishankar
2 Replies

3. AIX

AIX Free disk space

Hello, I would like to free some space to install gcc with is about 50M large, and I have no free space on my system. What can I delete? Filesystem 1024-blocks Used Free %Used Iused Ifree %Iused Mounted on /dev/hd4 262144 145436 116708 56% 7981 ... (10 Replies)
Discussion started by: aixn00b
10 Replies

4. Solaris

command to get the total disk space (available + free)

is there a command to get the total disk space (available + free) on the solaris server ? thanks (3 Replies)
Discussion started by: sudhiroracle
3 Replies

5. Solaris

Disk free space planning for Sol 10 LU

I'm getting ready to start a LU from Sol 9 to Solaris 10. I want to ensure that I have enough disk space for future upgrades. What I don't know is what free space Solaris requires. If I have 10GB of free space in /opt, will Solaris 10 use that for a LU? Or, do I need to allocate 10GB of space... (5 Replies)
Discussion started by: zeekstern
5 Replies

6. Solaris

free size of disk group

Hello Good morning all, Am not understanding the size of subdisk & group(length &offset).how we need to calculate this? Can anyone suggest me ? Thanks, Gowtham ---------- Post updated at 12:48 PM ---------- Previous update was at 08:30 AM ---------- I got the answer ... if want the... (0 Replies)
Discussion started by: gowthamakanthan
0 Replies

7. Shell Programming and Scripting

Free space at disk

Hi, I would like to create the new file system(mount point) in our unix server. before that i would like to know the total free space available in /home directory. Can you please let me know, how to find free space available for new filesystem? Be careful with your spelling and... (2 Replies)
Discussion started by: koti_rama
2 Replies

8. Solaris

Determine free space in a Disk device

Version: Solaris 10 (August 2011) on VM I am kind of new to Solaris.From VM workstation i allocated 35 GB to this Solaris VM's Disk The disk was named c1t0d0 Few basic slices for root(8gb), swap(517mb) and /export/home(494mb) were created by the solaris Installer during the... (18 Replies)
Discussion started by: polavan
18 Replies

9. Shell Programming and Scripting

I need help!! disk free space script

i want to write a shell script,when disk uses is 90% then automatically send a email to distribution list (group member)...... (1 Reply)
Discussion started by: sonu pandey
1 Replies

10. Solaris

Check free disk space in server

Hi, I need about 500G space in one corporate solaris server. However, I am not sure which command to use to check this. There are few volume groups in the server, and I deleted unused, old volume groups to clear some space. However, now I am not sure how to check the free space itself. ... (2 Replies)
Discussion started by: anaigini45
2 Replies
START_PVMD(3PVM)						  PVM Version 3.4						  START_PVMD(3PVM)

NAME
pvm_start_pvmd - Starts new PVM daemon. SYNOPSIS
C int info = pvm_start_pvmd( int argc, char **argv, int block ) Fortran call pvmfstartpvmd( args, block, info ) PARAMETERS
argc Number of arguments in argv. argv An array of arguments to the executable. args A character string containing the arguments to the executable. args A character string containing the arguments to the executable. block Integer specifying whether to block until startup of all hosts complete or return immediately. info Integer returning the error code. DESCRIPTION
The routine pvm_start_pvmd starts up a pvmd3 process, the master of a new virtual machine. It returns as soon as the pvmd is started and ready for work. If the block parameter is nonzero and a hostfile is passed to the pvmd as a parameter, it returns when all hosts marked to start have been added. pvm_start_pvmd returns zero on success. If PVM is compiled to allow running more than one pvmd per host, a task calling pvm_start_pvmd before any other pvm functions will connect to the pvmd that it starts. pvm_start_pvmd sets environment variable PVMSOCK to the address printed by the pvmd as it starts up. EXAMPLES
C: static char *argv[] = { "-d41", "/u/jones/pvmd_hosts", }; argc = 2 info = pvm_start_pvmd( argc, argv, block ); Fortran: CALL PVMFSTART_PVMD( '-d41 /u/jones/pvmd_hosts', BLOCK, INFO ) EXAMPLES
C: static char *argv[] = { "-d41", "/u/jones/pvmd_hosts", }; argc = 2 info = pvm_start_pvmd( argc, argv, block ); Fortran: CALL PVMFSTART_PVMD( '-d41 /u/jones/pvmd_hosts', BLOCK, INFO ) ERRORS
The following error conditions can be returned PvmDupHost A pvmd is already running. PvmSysErr The local pvmd is not responding. SEE ALSO
pvm_addhosts(3PVM), pvmd3(1PVM) pvmd3(1PVM) 11 December, 1995 START_PVMD(3PVM)
All times are GMT -4. The time now is 04:36 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy