@node _dos_getdiskfree, dos @findex _dos_getdiskfree @tindex diskfree_t@r{ structure} @subheading Syntax @example #include unsigned int _dos_getdiskfree(unsigned int drive, struct diskfree_t *diskspace); @end example @subheading Description This function determines the free space on @var{drive} drive (0=default, 1=A:, 2=B:, etc.) and fills @var{diskspace} structure. The members of @code{struct diskfree_t} are defined by @code{} as follows: @example struct diskfree_t @{ unsigned short total_clusters; unsigned short avail_clusters; unsigned short sectors_per_cluster; unsigned short bytes_per_sector; @}; @end example @subheading Return Value Returns with 0 if successful, non-zero on error (and sets @code{errno} to @code{EINVAL}). @subheading Portability @portability !ansi, !posix @subheading Example @example struct diskfree_t df; unsigned long freebytes; if ( !_dos_getdiskfree(0, &df) ) @{ freebytes = (unsigned long)df.avail_clusters * (unsigned long)df.bytes_per_sector * (unsigned long)df.sectors_per_cluster; printf("There is %lu free bytes on the current drive.\n", freebytes); @} else printf("Unable to get free disk space.\n"); @end example