11. januar 2006 - 10:26Der er
8 kommentarer og 1 løsning
TMP > file
Hej Jeg har noget kode som jeg ikke selv har lavet, men som jeg gerne vil forstå for at kunne videreudvikle. Det drejer sig om et C-program der læser en txt fil og et tal og danner en ny txt-fil. Programmet eksekveres fra dos-prompt), dvs. c:\program.exe ind.txt tal TMP > ud.txt
Der hvor jeg er gået i stå er delen "TMP >", er det noget med at der skrives til midlertidig fil? Hvor kan jeg læse om dette?
c:\program.exe - programmet der skal køres ind.txt - Første parameter tal - Anden parameter TMP - Tredje parameter > ud.txt - Instruktion til DOS/din kommandoprompt om at ud.txt skal bruge som stdout (standard output)
Efter ekskvering af denne kommando, skulle du ende med en fil ud.txt der indeholder programmets output. Hvis du ikke angav det sidste (> ud.txt), burde det blive skrevet direkte ud på skærmen, med mindre programmet på en eller anden måde kan gå ind og checke på dette.
aha, hvis jeg undlader (>) bliver output skrevet til skærmen OG til ud.txt. argv[0]-program.exe argv[1]-ind.txt argv[2]-tal argv[3]-ud.txt Men hvad med TMP?
Altså, det er selvfølgelig lidt svært at sige hvordan dit program virker når vi ikke ved hvilket program det er - men som jeg forstår dig korrekt, så laver kommandoen
program.exe ind.txt tal ud.txt
en fil kaldet ud.txt der indeholder outputtet? I så fald vil du med din oprindelige kommando få en fil der hedder TMP med outputtet, mens ud.txt vil indeholde det der normalt ville blive skrevet til skærmen.
Du skal ikke tage dig af at der står
TMP >
de to ting hænger ikke sammen, og programmet vil alligevel ikke se længere end til TMP (da > ud.txt behandles af din konsol).
hmm. det kan godt være det ikke er et C-spørgsmål så.
argv[0]-program.exe argv[1]-ind.txt (indeholder data på tekstformat) argv[2]-tal (tal som bruges til at ændre på nogle af data i ind.txt) argv[3]-ud.txt (outputtet, hvor data er ændret i forhold til tal (argv[2])
c:\argv[0] argv[1] argv[2] argv[3] ;skriver output til skærm og til argv[3] c:\argv[0] argv[1] argv[2] > argv[3] ;virker ikke! c:\argv[0] argv[1] argv[2] TMP > argv[3] ; skriver ikke output til skærm, men til argv[3], dvs. der er hurtigst og sådan det bør være.
Derfor er jeg interesseret i at vide hvad TMP gør. jeg kan se der bliver oprettet en fil i directory, men 0 kb!?
Det er umuligt at sige hvad TMP gør uden at vide hvilket program det er. Du kan måske få en ide hvis du kører programmet uden parametre, altså bare c:\program.exe.
Der er kun de 4 argumenter som listet ovenfor - ikke andre, altså ikke "TMP >". Der sker fejl, hvis der ikke er de 4 argumenter. Som jeg prøvede at illustrere ovenfor så ser det ud til at "TMP" og ">" hænger sammen, og at det, som du var inde på pidgeot, har noget at gøre med kommando til konsollen.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.