Hvordan kan jeg bruge en af ​​de udefinerede håndtag i mit C-program på Windows?

Indlæg af Hanne Mølgaard Plasc

Problem



En adgangskodefremkaldende funktion i et lukket kildebibliotek Jeg bruger i mit C-program på Windows XP skriver prompten til stdout (håndtag 1) og eventuelle fejlmeddelelser til stderr (håndtag 2).


Nu vil jeg kunne omdirigere output mine funktioner producerer ved hjælp af de normale omdirigeringsoperatører.


I overensstemmelse hermed er håndtagene 3-9 'defineret individuelt ved applikationen' . Jeg synes at kunne bruge en af ​​disse i mit program og derefter bruge de normale omdirigeringsoperatører (fx noget som myprogram.exe 3| otherprogram.exe). [4]


Hvordan kan jeg gøre dette i min C-kode?

Bedste reference


På Windows? Nå, hvis du bruger posix-kompatibilitetsbiblioteket, kan du bruge 'dup2' til at tvinge brugen af ​​filbeskrivelse 3. Jeg kan ikke love, at cmd.exe ville vide, hvad du snakker om.


Grundlæggende, her ser du på en lille smule Unix/Linux-misundelse på Windows. Begrebet small-integer descriptor numre er en grundlæggende Unix/Linux ting. Det er ikke en funktion af Windows. Det faktum, at cmd.exe ved hvad der skal gøres med 0, 1 og 2, er sandsynligvis en bekvemmelighed for fejlplacerede Unix-shell-programmører, som ikke generaliseres til andre tal .