Novell Home

NWGetVolumeFlags() example

From Developer Community

This program lets you query a volume for its sub-allocation, compression, data migration and immediate purge flags.

Sample Code

#include <errno.h>
#include <nit/nwdir.h>
#include <nwerrno.h>
#include <nwfileio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main( int argc, char* argv[]) {
   int  volumeNumber;
   LONG flags;
   if ( argc != 2) {
      puts( "Usage: VolFlags <volume name>");
      return EXIT_FAILURE;
   }
   if ( GetVolumeNumber( argv[ 1], &volumeNumber) != 0) {
      puts( "GetVolumeNumber failed");
      return EXIT_FAILURE;
   }
   if ( NWGetVolumeFlags(( LONG) volumeNumber, &flags) == -1) {
      printf( "NWGetVolumeFlags failed, %s (%d), NetWareErrno = %d\n",
         strerror( errno), errno, NetWareErrno);
      return EXIT_FAILURE;
   }
   printf( "%s:%s%s%s%s\n",
      argv[ 1],
      flags & SUB_ALLOCATION_FLAG         ? " SUB_ALLOCATION_FLAG"         : "",
      flags & FILE_COMPRESSION_FLAG       ? " FILE_COMPRESSION_FLAG"       : "",
      flags & DATA_MIGRATION_FLAG         ? " DATA_MIGRATION_FLAG"         : "",
      flags & VOLUME_IMMEDIATE_PURGE_FLAG ? " VOLUME_IMMEDIATE_PURGE_FLAG" : "");
   return EXIT_SUCCESS;
}

--Dmitry Mityugov

Novell® Making IT Work As One

© 2008 Novell, Inc. All Rights Reserved.