Public bug reported: When calling ioctl to request some special key bindings, it seems to return a random value for the Suspend binding (see attached C file).
On my system, if I do a stty -a I get this: $ stty -a speed 38400 baud; rows 24; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = M-^?; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 hupcl -cstopb cread -clocal -crtscts -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc ixany imaxbel iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke If I run the enclosed C program, which does an ioctl for TCGETA: if (ioctl(0, TCGETA, (char*) &sgbuf) == 0) { and then retrieves the key bindings for interrupt, erase, and suspend (^C, ^?, and ^Z in the above output). It returns Interrupt and Erase correctly, but it returns the wrong value for Suspend; each time I run the program it returns a different value, though it consistently returns the same (wrong) value within the program: if ((int) sgbuf.c_cc[VSUSP] != 0377) { printf("Suspend=%i\n", (int)sgbuf.c_cc[VSUSP]); } The program calls the ioctl three times to see if it always returns the same value within the program. It does. An example output: Erase= 127, Interrupt=3, Suspend=31 Erase= 127, Interrupt=3, Suspend=31 Erase= 127, Interrupt=3, Suspend=31 but the next time I run it: Erase= 127, Interrupt=3, Suspend=171 Erase= 127, Interrupt=3, Suspend=171 Erase= 127, Interrupt=3, Suspend=171 ProblemType: Bug DistroRelease: Ubuntu 14.04 Package: gcc 4:4.8.2-1ubuntu6 ProcVersionSignature: Ubuntu 3.13.0-46.77-generic 3.13.11-ckt15 Uname: Linux 3.13.0-46-generic x86_64 ApportVersion: 2.14.1-0ubuntu3.7 Architecture: amd64 CurrentDesktop: Unity Date: Thu Mar 5 14:41:28 2015 SourcePackage: gcc-defaults UpgradeStatus: No upgrade log present (probably fresh install) ** Affects: gcc-defaults (Ubuntu) Importance: Undecided Status: New ** Tags: amd64 apport-bug trusty ** Attachment added: "Example program that illustrates the bug. Compile with cc termio.c" https://bugs.launchpad.net/bugs/1428651/+attachment/4335256/+files/termio.c -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1428651 Title: termio ioctl returns incorrect value for suspend character To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gcc-defaults/+bug/1428651/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs