Befehl mit C sprache nachbilden

ich möchte ein C-programme schreiben das das MS-dos befehl nachbildet
ich habe noch probleme mit main modul
kann jemand mir helfen?

ich möchte ein C-programme schreiben das das MS-dos befehl
nachbildet
ich habe noch probleme mit main modul
kann jemand mir helfen?

Hallo!

Ich kenne 2 Lösungen:

* einfach unschön:

Mit system(„dir“); das Verzeichnis auf dem Bildschirm holen. Das wirst du aber wahrscheinlich nicht brauchen können und desshalb brauchst du system(„dir >> hallo.txt“); damit der Text in hallo.txt liegt!

* schön schwierig:

#include
#include
#include

void main()
{
struct ffblk eintrag;
REGS inreg, outreg;
SREGS sreg;
char suchname[13]="???.???";
int resultat, disktranf_seg, disktransf_ofs, i;
char c;

//Alte Disktransfer Adresse sichern
inreg.h.ah = 0x2f;
intdosx (&inreg, &outregk, &sreg);
disktransf_seg = sreg.es;
disktransf_ofs = outreg.x.bx;

//Disktransfer Adresse setzen
inreg.h.ah = 0x1a;
sreg.ds = FP_SEG(&eintrag);
inreg.x.dx = FP_OFF(&eintrag);
intdosx (&inreg, &outreg, &sreg);

inreg.h.ah = 0x4e;
inreg.x.cx = 0x3f;
sreg.ds = FP_SEG(&suchname);
inreg.x.dx = FP_OFF(&suchname);
intdosx(&inreg, &outreg, &sreg);
resultat = outreg.h.al;

while (!resultat)
{
i=0;

while (c=eintrag.ff_name[i++])
putchar©;

while (i++>5) & 0x0f,
((eintrag.ff_fdate>>9) & 0xf7)+1980,
(eintrag.ff_ftime>>11) &0x1f,
(eintrag.ff_ftime>>5)&0x3f,
(eintrag.ff_ftime & 0x1f)*2);

inreg.h.ah = 0x4f;
intdos (&inreg, &outreg);
resultat = outreg.h.al;
}

//Disktransfer Adresse rücksetzen
inreg.h.ah = 0x1a;
sreg.ds = disktransf_seg;
inreg.x.dx = disktransf_ofs;
intdosx (&inreg, &outreg, &sreg);

} //b125d, ADIM, C++ - Band 50, 5. Auflage, S.136

Diese Methode greift direkt über Interrupts zu! Heikle Sache aber die besste Möglichkeit! Dieser Sourcecode geht auf alle Fälle mit BC++ 3.1 für DOS.

Servus, Stefan Huber!