File: format.c

package info (click to toggle)
c-cpp-reference 2.0.2-8
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, wheezy
  • size: 8,016 kB
  • ctags: 4,612
  • sloc: ansic: 26,960; sh: 11,014; perl: 1,854; cpp: 1,324; asm: 1,239; python: 258; makefile: 119; java: 77; awk: 34; csh: 9
file content (56 lines) | stat: -rwxr-xr-x 1,266 bytes parent folder | download | duplicates (5)
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