setdta
raw OCR
Sets disk-transfer address.
Defined in header <dos.h>
Syntax
#include <dos.h>
void setdta(char far *dta);
Portability
| DOS | UNIX | Windows | ANSI C | C++ only |
|---|---|---|---|---|
| ■ | ■ |
Remarks
setdta changes the current setting of the DOS disk-transfer address (DTA) to the value given by dta.
Return value
None.
See also
Example
#include <process.h>
#include <string.h>
#include <stdio.h>
#include <dos.h>
int main(void)
char line [80], far *save_dta;
char buffer [256] = "SETDTA test!";
struct fcb bR;
int result;
/* get new file name from user. */
printf("Enter a file name to create:");
gets(line);
/* parse the new file name to the dta */
parsfnm(line, &bll<:, 1);
printf ("%d %s\n", blk.fcb_drive, bl]<.fcb_name);
/* request DOS services to create file */
if (bdosptr(0xl6, &bl]c, 0) == -1) {
perror("Error creating file");
exit(l);
/* save old dta and set new dta */
save_dta = getdtaO;
setdta (buffer);
/* write new records */
blk.fcb_recsize = 256;
blk.fcb_random = 0L;
result = randbwr (&blk, 1);
printf ("result = %d\n", result);
if (iresult)
printf ("Write OK\n");
else {
perror ("Disk error");
exit(l);
}
/* request DOS services to close the file */
if (bdosptr(OxlO, &blk, 0) == -1) {
perror ("Error closing file");
exit(l);
}
/* reset the old dta */
setdta (save_dta);
return 0;
Differences from modern implementations
Nothing recorded yet.
Modern references
These are search links, not yet checked by hand.
Stable link: /3.1/dos.h/setdta/
· short form /3.1/setdta/