0

我正在尝试getchar在操作系统的 linux 内核上使用修改后的函数,从终端给出的字符串中获取字符,然后打印它,但每隔一次我调用它,它似乎基本上返回一个空字符串。

内核级空间:

int sys_readchar(userptr_t chptr, it *retval) {
    char ch;
    int result;
    ch = getch();
    copyout(&ch, chptr, sizeof(ch));
    *retval=1;
    return 0;
}

用户级别:

int getchar(void) {
    char ch;
    int len;
    len = readchar(&ch);
    return (int)(unsigned char)ch;
}

有谁知道出了什么问题?

谢谢。

4

0 回答 0