amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > stdin und stdout umlenken [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

08.06.2004, 21:18 Uhr

Mazze
Posts: 263
Nutzer
Hi,

ich möchte stdin und stdout auf ein neues con-Fenster umlenken. Bei folgendem Code werden 2 neue Fenster geöffnet. Ich möchte aber, dass Ein- und Ausgabe in *einem* Fenster erscheinen. Geht das?

code:
#include <stdio.h>

int x;

int main(void)
{
	freopen("con:40/40/200/200/Out","w",stdout);
	freopen("con:80/80/200/200/In","r",stdin);

	scanf("%d", &x);

	printf("lalalan");
	scanf("%d", &x);
}


Grund ist, dass ein mit vbcc kompiliertes Program kein Konsolen-Fenster öffnet, wenn es von der Workbench gestartet wird. Die Ein- und Ausgabe mit printf und co. landet deshalb im Nirwana.

[ - Antworten - Zitieren - Direktlink - ]

08.06.2004, 22:00 Uhr

thomas
Posts: 7716
Nutzer
Versuch's mal mit

freopen("con:40/40/200/200/InOut","w",stdout);
freopen("*","r",stdin);

Bei AmigaDOS müßte das so gehen. Ich weiß nur nicht, ob stdout bis Output() durchgreift, oder ob es nur eine C-interne Variable ist.

Gruß Thomas

--
Email: thomas-rapp@web.de
Home: home.t-online.de/home/thomas-rapp/

[ Dieser Beitrag wurde von thomas am 08.06.2004 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

09.06.2004, 09:03 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Original von thomas:
freopen("con:40/40/200/200/InOut","w",stdout);
freopen("*","r",stdin);
Bei AmigaDOS müßte das so gehen.

Das geht nur, wenn pr_ConsoleTask vom der vbcc-Runtime gesetzt wurde.
Zitat:
Ich weiß nur nicht, ob stdout bis Output() durchgreift, oder ob es nur eine C-interne Variable ist.
Im Shell-Fall kann Output() als FileHandle für stdout benutzt. Muß aber nicht zwingend. Es gibt keine direkte Verbindung des C std[out,in,err] und (AmigaOS-)Prozessfilehandles.

[ - Antworten - Zitieren - Direktlink - ]

09.06.2004, 13:41 Uhr

Mazze
Posts: 263
Nutzer
Danke für die Hinweise,

@thomas: hat nicht geklappt.

Falls euch interessiert, was ich mache: ich schreibe einen Sourcecodegenerator. Er erstellt aus einer Eingabedatei eine main.c und main.h. Es gibt Parameter zum Library öffnen, Tooltypes auslesen etc

Ich mache das jetzt so, dass beim Start von der Workbench für stdin und stdout je ein con-Fenster mit der AUTO-Option geöffnet wird. Es geht hauptsächlich darum, dass Statusausgaben und Debug-Meldungen nicht im NILwana landen. Wenn ein Anwender echte Shell-Funktionalität braucht, muss er sich halt selbst was mit den entsprechenden Betriebssystem-Funktionen basteln.

[ - Antworten - Zitieren - Direktlink - ]

09.06.2004, 18:35 Uhr

Holger
Posts: 8116
Nutzer
Da Dateinamen ala "con:..." eh nicht portabel sind, kannst Du auch AmigaDOS-Funktionen benutzen, um die Ausgabe zu setzen. Das funktioniert dann auch, wenn das C-Programm nicht stdio benutzt.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > stdin und stdout umlenken [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.