Category : C Source Code
Archive   : SNIP1292.ZIP
Filename : GETVOL.C

 
Output of file : GETVOL.C contained in archive : SNIP1292.ZIP
/*
** GETVOL.C - Retrieve a disk volume label
** (proof you don't need FCBs to do it!)
**
** public domain demo by Bob Stout
*/

#include
#include
#include
#include
#include

#if defined(__TURBOC__)
#pragma option -a-
#include
#define _dos_findfirst(f,a,b) findfirst(f,b,a)
#define _dos_findnext(b) findnext(b)
#define find_t ffblk
#define _A_VOLID FA_LABEL
#define attrib ff_attrib
#define name ff_name
#else
#include
#if defined(__ZTC__)
#pragma ZTC align 1
#else /* MSC/QC/WATCOM/METAWARE */
#pragma pack(1)
#endif
#endif

#define SUCCESS 0

char *getvol(char drive)
{
char search[] = "A:\\*.*";
static struct find_t ff;

*search = drive;
if (SUCCESS == _dos_findfirst(search, _A_VOLID, &ff))
{
if (8 < strlen(ff.name)) /* Eliminate period */
strcpy(&ff.name[8], &ff.name[9]);
return ff.name;
}
else return NULL;
}

#ifdef TEST

int main(int argc, char *argv[])
{
char *label;

if (2 > argc)
{
puts("\aUsage: GETVOL d[:]");
puts("where: d = drive letter (e.g. A, B, C, etc.");
return -1;
}
if (NULL == (label = getvol(*argv[1])))
printf("Unable to read a label on drive %c:\n", *argv[1]);
else printf("The volume label of drive %c: is \"%s\"\n",
*argv[1], label);
return 0;
}

#endif


  3 Responses to “Category : C Source Code
Archive   : SNIP1292.ZIP
Filename : GETVOL.C

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/