只写内存

时间:2015-08-05 15:35:23

标签: memory language-agnostic

我知道在许多语言中存在只读值(在C ++等Java finalconst)但是存在“只写”值这样的东西吗?我在笑话中听到过这种变化,例如只写代码,但我想知道这是否是计算机科学中的合法概念。说实话,我看不出它在任何情况下会有什么帮助,但我只是想知道。

2 个答案:

答案 0 :(得分:1)

当然有一些用于PC的FPU使用了一些奇怪的设置,现有的内存映射设备。要执行某些操作,只需将要操作的值写入指示要执行的操作的存储器地址,然后(最终)可以在另一个地址处获得该值。

我不知道你是否会严格定义这个"只写内存",而是将地址(部分)用作操作码的内存。

答案 1 :(得分:1)

在unix shell脚本中,有一个只写内存的概念。但它不是任何shell或脚本语言的一部分,它是一种设备:/dev/null

只写设备/dev/null用于丢弃您不想要的输出。通常允许调用者将stdout和/或stderr重定向到它。

计算机上还有其他只写内存。一个例子是你的声卡,在一些(较旧的)unix机器上映射到/dev/audio/dev/dsp。给它写入数值可以使你的扬声器发出声音,但是从中读取它不会让你失望。

在设备驱动程序本身的较低级别,这些硬件设备通常连接到特定的内存或I / O地址(某些CPU架构没有单独的内存和I / O地址 - 只有一个地址RAM和所有其他硬件共享的空间)。所以在真正意义上,这些内存位置实际上是只写的。