0

有ac文件

#include <stdio.h>
#include <termios.h>


struct termios raw;


int raw_on(void)
{

    if (tcgetattr(0, &raw) == -1)
        return -1;


    raw.c_lflag &= ~ECHO;
    raw.c_lflag &= ~ICANON;
    raw.c_lflag &= ~ISIG;


    // raw.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON);
    // raw.c_oflag &= ~(OPOST);
    // raw.c_cflag |= (CS8);
    // raw.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);
    // raw.c_cc[VMIN] = 1;
    // raw.c_cc[VTIME] = 0;

    return tcsetattr(0, TCSAFLUSH, &raw);
}

当我在 chez-scheme 中调用它时

> (load-shared-object "./emacs.so")
> (foreign-procedure "raw_on"() int)
#<procedure>
> (define raw-on (foreign-procedure "raw_on"() int))
> (raw-on)
Exception: invalid memory reference.  Some debugging context lost
Type (debug) to enter the debugger.

当我在互联网上搜索它时,我发现 termios.h 是针对 POSIX 终端的,而我的操作系统是 Debian。

请问为什么会出现这个错误提前谢谢。

4

0 回答 0