Hallo,
ich kann leider erst jetzt an meinen PC und bedanke mich erst einmal für die vielen Antworten. Das mit den export- ierten Shell-Variablen sowie fork() und exec() hatten wir glücklicherweise vor etwa einer Woche in der Vorlesung :-)
Der Hinweis auf ioctl war sehr gut, ich hab das Auslesen der Terminal-Größe jetzt folgendermaßen realisiert:
{ int fd,err; struct winsize win;
fd = open("/dev/tty", O_RDONLY | O_NONBLOCK); err = ioctl(fd, TIOCGWINSZ, &win); printf("Exit:%d,rows:%d,cols:%d\n",err,win.ws_row,win.ws_col); close(fd); }
Allerdings hab ich nirgends gelesen, ob ich das tty einfach so öffnen darf, wie ich das hier getan habe. Skeptisch bin ich vor allem geworden, da bei mir der 'fd' nach open den Wert 3 hat. Wenn ich allerdings für 'fd' in der ioctl- Anweisung einfach 0 eintrage, funktioniert das Programm trotzdem. Irgendwo im Netz habe ich ein ähnliches Beispiel gefunden, wo nur eine feste 0 in ioctl stand. Ist 0 ein standardmäßig geöffneter Dateidescriptor auf das Terminal?
Viele Grüße,
Matthias