amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > stdin und stdout umlenken [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2004-06-08, 21:18 h

Mazze
Posts: 263
User
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.

[ - Answer - Quote - Direct link - ]

2004-06-08, 22:00 h

thomas
Posts: 7718
User
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. ]

[ - Answer - Quote - Direct link - ]

2004-06-09, 09:03 h

gni
Posts: 1106
User
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.

[ - Answer - Quote - Direct link - ]

2004-06-09, 13:41 h

Mazze
Posts: 263
User
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.

[ - Answer - Quote - Direct link - ]

2004-06-09, 18:35 h

Holger
Posts: 8116
User
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.

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > stdin und stdout umlenken [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.