root/examples/libsmbclient/teststatvfs.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. main

   1 #include <sys/types.h>
   2 #include <sys/statvfs.h>
   3 #include <stdio.h> 
   4 #include <unistd.h>
   5 #include <string.h> 
   6 #include <time.h> 
   7 #include <errno.h>
   8 #include <libsmbclient.h> 
   9 #include "get_auth_data_fn.h"
  10 
  11 
  12 int main(int argc, char * argv[]) 
     /* [<][>][^][v][top][bottom][index][help] */
  13 { 
  14     int             i;
  15     int             fd;
  16     int             ret;
  17     int             debug = 0;
  18     char *          p;
  19     char            path[2048];
  20     struct stat     statbuf;
  21     struct statvfs  statvfsbuf;
  22     
  23     smbc_init(get_auth_data_fn, debug); 
  24     
  25     for (;;)
  26     {
  27         fprintf(stdout, "Path: ");
  28         *path = '\0';
  29         fgets(path, sizeof(path) - 1, stdin);
  30         if (strlen(path) == 0)
  31         {
  32             return 0;
  33         }
  34 
  35         p = path + strlen(path) - 1;
  36         if (*p == '\n')
  37         {
  38             *p = '\0';
  39         }
  40     
  41         ret = smbc_statvfs(path, &statvfsbuf);
  42 
  43         if (ret < 0)
  44         {
  45             perror("fstatvfs");
  46         }
  47         else
  48         {
  49             printf("\n");
  50             printf("Block Size: %lu\n", statvfsbuf.f_bsize);
  51             printf("Fragment Size: %lu\n", statvfsbuf.f_frsize);
  52             printf("Blocks: %llu\n",
  53                    (unsigned long long) statvfsbuf.f_blocks);
  54             printf("Free Blocks: %llu\n",
  55                    (unsigned long long) statvfsbuf.f_bfree);
  56             printf("Available Blocks: %llu\n",
  57                    (unsigned long long) statvfsbuf.f_bavail);
  58             printf("Files : %llu\n",
  59                    (unsigned long long) statvfsbuf.f_files);
  60             printf("Free Files: %llu\n",
  61                    (unsigned long long) statvfsbuf.f_ffree);
  62             printf("Available Files: %llu\n",
  63                    (unsigned long long) statvfsbuf.f_favail);
  64             printf("File System ID: %lu\n",
  65                    (unsigned long) statvfsbuf.f_fsid);
  66             printf("\n");
  67 
  68             printf("Flags: 0x%lx\n", statvfsbuf.f_flag);
  69             printf("Extended Features: ");
  70 
  71             if (statvfsbuf.f_flag & SMBC_VFS_FEATURE_NO_UNIXCIFS)
  72             {
  73                 printf("NO_UNIXCIFS ");
  74             }
  75             else
  76             {
  77                 printf("unixcifs ");
  78             }
  79 
  80             if (statvfsbuf.f_flag & SMBC_VFS_FEATURE_CASE_INSENSITIVE)
  81             {
  82                 printf("CASE_INSENSITIVE ");
  83             }
  84             else
  85             {
  86                 printf("case_sensitive ");
  87             }
  88 
  89             if (statvfsbuf.f_flag & SMBC_VFS_FEATURE_DFS)
  90             {
  91                 printf("DFS ");
  92             }
  93             else
  94             {
  95                 printf("no_dfs ");
  96             }
  97 
  98             printf("\n");
  99         }
 100     }
 101 
 102     return 0; 
 103 }

/* [<][>][^][v][top][bottom][index][help] */