From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/format.c | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/format.c (limited to 'reference/C/CONTRIB/SNIP/format.c') diff --git a/reference/C/CONTRIB/SNIP/format.c b/reference/C/CONTRIB/SNIP/format.c new file mode 100755 index 0000000..5707118 --- /dev/null +++ b/reference/C/CONTRIB/SNIP/format.c @@ -0,0 +1,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 +#include + +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 -- cgit v1.2.3-54-g00ecf