Citat:
Dejan Lozanovic: E da to je jedna od stvari koja mi ide na ganglije kod windowsa, su ti podsistemi, tipa pokrenes program koji se graficki izvrsava a on ne moze da nista printa na "terminali" sa kog je pokrenut ako mu ne ukljucis i konzolni subsitem.
Da, moraš eksplicitno pozvati AllocConsole() ukoliko u PE (Portable Executable) zaglavlju izvršne datoteke nije postavljen jedan bit (obično kontroliran preko zastavice linkera) koji implicitno dodjeljuje konzolu programu.
I BTW - ovo nije isto kao i gui/terminal dihotomija, win32 i POSIX su različiti environment subsystemi, što znači da imaju različit tretman od strane kernela (pozivaju iste sistemske pozive - i CreateProcess() i fork(2) završe pozivajući NtCreateProcess(), svaki sa svojim odgovarajuće podešenim parametrima naravno). Njihovo je razdvajanje stvoreno namjerno, po dizajnu, kako bi se u userlandu mogle pružiti odgovarajuće "personalnosti". S vremenom su i POSIX i OS/2 personalnosti otpale, ostala samo win32/win64, sad se tek SUA revitalizirao. Ovakav model je razlog između ostaloga zašto masa ljudi pogrešno NT zove nekakvim "mikrokernelom".
Citat:
Nego da se vratim na problematiku :) eclipse samo execuje gdb i poveze stdin/etdout/stderr sa sobom i sam plugin mozes da konfigurises kako ce da poziva neku komandu. U svakom slucaju ja sam pre jedno godinu i nesto povezao eclipse/CDT plugin/mingw na XP-u
Eclipse neće samo "moći pokrenuti" gdb, osim zaobilazno preko posix.exe - a i tad neće moći povezati I/O handleove preko named pipeova, zbog maloprije spomenutih razloga. mingw je potpuno druga priča - to je
simulacija POSIX APIja
iznad win32 API-ja, pa je takvo povezivanje moguće. SUA/Interix ne ovise o win32 nikako.