seriova konzola bezi len 80x25

Patrik Ostrihon pa3k na pa3k.sk
Středa Květen 14 21:57:51 CEST 2003


Dňa St, 2003-05-14 at 21:34, Pavel Kankovsky napísal:
> On 14 May 2003, Patrik Ostrihon wrote:
> 
> > Ked v xterme zmenite velkost, on o tom da vediet ovladacu
> > pseudoterminalu a ten si nastavy novy rozmer. Nasledne aplikacia xterm
> > zasle signal SIGWINCH vsetkym procesom, ktore maju otvoreny dany
> > pseudoterminal. [...]
> 
> To neposila primo xterm, to posle jaderny ovladac pseudoterminalu pote,
> co xterm (nebo kdokoli jiny) nastavi velikost velikost pomoci ioctl
> TIOCSWINSZ.

Tak ste ma donutili pozriet sa na to :).

Takze naozaj v linuxe to posle ovladac presudoterminalu:

drivers/char/tty_io.c

static int tiocswinsz(struct tty_struct *tty, struct tty_struct
*real_tty,
        struct winsize * arg)
{
        struct winsize tmp_ws;

        if (copy_from_user(&tmp_ws, arg, sizeof(*arg)))
                return -EFAULT;
        if (!memcmp(&tmp_ws, &tty->winsize, sizeof(*arg)))
                return 0;
        if (tty->pgrp > 0)
                kill_pg(tty->pgrp, SIGWINCH, 1);
        if ((real_tty->pgrp != tty->pgrp) && (real_tty->pgrp > 0))
                kill_pg(real_tty->pgrp, SIGWINCH, 1);
        tty->winsize = tmp_ws;
        real_tty->winsize = tmp_ws;
        return 0;
}

Ale :) niektore ine unix platformi to nevedia takze to vie poslat aj
xterm :)

#if defined(TIOCSSIZE) && (defined(sun) && !defined(SVR4))
    /* Set tty's idea of window size */
    ts.ts_lines = rows;
    ts.ts_cols = cols;
    code = ioctl(screen->respond, TIOCSSIZE, &ts);
    TRACE(("return %d from TIOCSSIZE %dx%d\n", code, rows, cols));
#ifdef SIGWINCH
    if (screen->pid > 1) {
        int pgrp;

        if (ioctl(screen->respond, TIOCGPGRP, &pgrp) != -1)
            kill_process_group(pgrp, SIGWINCH);
    }
#endif /* SIGWINCH */

Ale mali ste pravdu, hold aj majster tesar sa utne :).

-- 
Patrik Ostrihon
Technicky riaditel
ProWeb Consulting, a.s.
Werferova 1, 040 11  Kosice
Tel./fax: 055 / 7898 401
Navstivte nas na: www.pwc.sk




Další informace o konferenci Linux