1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
/*
** FORMAT.C - Use DOS FORMAT to format a diskette
**
** Original Copyright 1992 by Bob Stout as part of
** the MicroFirm Function Library (MFL)
**
** This subset version is hereby donated to the public domain.
*/
#include <stdio.h>
#include <stdlib.h>
enum {ERROR = -1, SUCCESS};
/*
** format
**
** Formats a specified floppy disk with optional switches.
**
** Parameters: 1 - Drive letter ('A', 'B', ...) to format
** 2 - Formatting switches in FORMAT.COM format, e.g. "/4"
** 3 - Volume label
**
** Returns: SUCCESS or ERROR
*/
int format(char drive, char *switches, char *vlabel)
{
char command[128], fname[13];
FILE *tmpfile;
tmpnam(fname);
if (NULL == (tmpfile = fopen(fname, "w")))
return ERROR; /* Can't open temp file */
fprintf(tmpfile, "\n%s\nN\n", vlabel);
fclose(tmpfile);
sprintf(command, "format %c: /V %s < %s > NUL", drive, switches, fname);
system(command);
remove(fname);
return SUCCESS;
}
#ifdef TEST
void main(void)
{
int retval = format((char)'a', "/4", "dummy_test");
printf("format() returned %d\n", retval);
}
#endif
|