Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用标准C语言设计键盘记录器_C_C99_C89 - Fatal编程技术网

用标准C语言设计键盘记录器

用标准C语言设计键盘记录器,c,c99,c89,C,C99,C89,是否可以使用标准C(即c89或c99)中定义的函数创建键盘记录器,而不使用编译器提供的API?最终答案是否定的,假设您想知道原因: C是用抽象机器来描述的。不需要太多细节,它是一台不存在的机器,但任何C实现都必须公开与此抽象机器相同的可观察行为。此机器的一些属性是调用“stack”(*)的函数和对线性内存模型的访问。对于托管环境,添加输入和输出流 抽象机器特别不包括操作系统的概念(应该可以在尽可能多的设备上实现),或者直到C11,任何并行执行的概念。即使有一些具体的输入设备,比如键盘,也超出了C

是否可以使用标准C(即c89或c99)中定义的函数创建键盘记录器,而不使用编译器提供的API?

最终答案是否定的,假设您想知道原因:

C是用抽象机器来描述的。不需要太多细节,它是一台不存在的机器,但任何C实现都必须公开与此抽象机器相同的可观察行为。此机器的一些属性是调用“stack”(*)的函数和对线性内存模型的访问。对于托管环境,添加输入和输出流

抽象机器特别不包括操作系统的概念(应该可以在尽可能多的设备上实现),或者直到C11,任何并行执行的概念。即使有一些具体的输入设备,比如键盘,也超出了C抽象机的范围,它只知道输入流,而不关心数据来自哪里

键盘记录器需要的是将代码挂接到某个地方,这可能是用于输入缓冲的操作系统层、键盘驱动程序,甚至直接是硬件(在像旧C64这样的简单机器上,控制键盘矩阵的IO寄存器)。不管它是什么,C抽象机器永远无法以独立于平台的方式来描述它

注意,这个答案还远远不够完整。只是试图给出一个简洁的解释,包含必要的关键词,以便为任何感兴趣的人做进一步的详细研究

(*)这不一定是一个堆栈,它只是一个常见的实现。

最终答案是否定的,假设您想知道原因:

C是用抽象机器来描述的。不需要太多细节,它是一台不存在的机器,但任何C实现都必须公开与此抽象机器相同的可观察行为。此机器的一些属性是调用“stack”(*)的函数和对线性内存模型的访问。对于托管环境,添加输入和输出流

抽象机器特别不包括操作系统的概念(应该可以在尽可能多的设备上实现),或者直到C11,任何并行执行的概念。即使有一些具体的输入设备,比如键盘,也超出了C抽象机的范围,它只知道输入流,而不关心数据来自哪里

键盘记录器需要的是将代码挂接到某个地方,这可能是用于输入缓冲的操作系统层、键盘驱动程序,甚至直接是硬件(在像旧C64这样的简单机器上,控制键盘矩阵的IO寄存器)。不管它是什么,C抽象机器永远无法以独立于平台的方式来描述它

注意,这个答案还远远不够完整。只是试图给出一个简洁的解释,包含必要的关键词,以便为任何感兴趣的人做进一步的详细研究

(*)这不一定是一个堆栈,它只是一个常见的实现。

最终答案是否定的,假设您想知道原因:

C是用抽象机器来描述的。不需要太多细节,它是一台不存在的机器,但任何C实现都必须公开与此抽象机器相同的可观察行为。此机器的一些属性是调用“stack”(*)的函数和对线性内存模型的访问。对于托管环境,添加输入和输出流

抽象机器特别不包括操作系统的概念(应该可以在尽可能多的设备上实现),或者直到C11,任何并行执行的概念。即使有一些具体的输入设备,比如键盘,也超出了C抽象机的范围,它只知道输入流,而不关心数据来自哪里

键盘记录器需要的是将代码挂接到某个地方,这可能是用于输入缓冲的操作系统层、键盘驱动程序,甚至直接是硬件(在像旧C64这样的简单机器上,控制键盘矩阵的IO寄存器)。不管它是什么,C抽象机器永远无法以独立于平台的方式来描述它

注意,这个答案还远远不够完整。只是试图给出一个简洁的解释,包含必要的关键词,以便为任何感兴趣的人做进一步的详细研究

(*)这不一定是一个堆栈,它只是一个常见的实现。

最终答案是否定的,假设您想知道原因:

C是用抽象机器来描述的。不需要太多细节,它是一台不存在的机器,但任何C实现都必须公开与此抽象机器相同的可观察行为。此机器的一些属性是调用“stack”(*)的函数和对线性内存模型的访问。对于托管环境,添加输入和输出流

抽象机器特别不包括操作系统的概念(应该可以在尽可能多的设备上实现),或者直到C11,任何并行执行的概念。即使有一些具体的输入设备,比如键盘,也超出了C抽象机的范围,它只知道输入流,而不关心数据来自哪里

键盘记录器需要的是将代码挂接到某个地方,这可能是用于输入缓冲的操作系统层、键盘驱动程序,甚至直接是硬件(在像旧C64这样的简单机器上,控制键盘矩阵的IO寄存器)。不管它是什么,C抽象机器永远无法以独立于平台的方式来描述它

注意,这个答案还远远不够完整。只是试图给出一个简洁的解释,包含必要的关键词,以便为任何感兴趣的人做进一步的详细研究

(*)这不一定是一个