问题标签 [low-level-io]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 运行相同操作系统问题的两个不同大小的图像文件的完整性
我有一个要求。我有两个运行轻量级 Linux 发行版的虚拟映像文件(例如:slitaz),它们的磁盘大小不同。我想在块/扇区级别的给定时间点检查这些图像文件的内核运行的完整性。
我已经完成了文件系统级别的完整性检查,方法是将映像挂载到循环设备,然后访问所需的内核文件(vmlinuz 和 initrd)并对它们进行散列,然后将该散列与这些文件的真正散列进行比较。
现在我想执行案例以检查块级别的完整性,这是我所做的:
但是在这种情况下有没有办法检查完整性?
正如我们所知,块/扇区级别的内容与两个映像文件中属于内核的部分相匹配,因为它们运行的是相同的 Linux 发行版。
我无法获取内核驻留的块级信息以检查其完整性。假设我的内核文件驻留多个块,我如何获取信息?非常感谢任何工具或任何指导。
vba - VBA 以二进制模式写入文件(覆盖给定字节会导致下一个字节发生意外变化,将其值设置为 0)
我想.bmp
使用 VBA 修改文件的一部分,一切都很好,除了当我覆盖选择的字节时,下一个字节被设置为零。我的宏是:
为什么当我修改字节数 100 时,字节数 101 的值设置为 00 ?如何改变它,为什么会发生?
编辑
Cor_Blimey 指出使用转换函数 CByte(255) 解决了问题,因为255
在 VBA 中是整数,它是 16 位数字,因此将其放入文件会覆盖两个字节
matlab - 在电子邮件中查找名称(低级 I/O)
第 2 轮:在电子邮件中挑选领导者 好的,所以我的下一个问题是试图找出项目中的领导者。为了确定这一点,我们会收到一封电子邮件,并且必须找到说“你想要...”的人(大小写可能会有所不同)。我觉得我的代码大部分应该都可以工作,但是我在弄清楚如何正确填充单元格数组时确实遇到了问题。我可以用它来创建单元阵列,但它只是将电子邮件重新放入其中。所以每个单元格基本上就是名字。
我理想情况下需要它做的是找到'/n'字符(因此我使用fgets),但我不知道如何让它做到这一点。我试图让我的while循环像:
但这是不正确的。我觉得我知道如何做'/n'位,我只是想不出。所以我会很感激一些提示或技巧来做到这一点。我总是可以尝试 strsplit 或 strtok 函数,但我需要然后填充我的单元格数组,这样可能会变得混乱。
请并感谢您的帮助:)
matlab - 更改 .txt 文件中的文本并在 MATLAB 中创建新文件输出
如果标题看起来有点不对劲,我提前道歉。我很难决定我应该给它取什么名字。无论如何,基本上我现在所做的完全是处理低级 I/O 的作业。对于我的一项任务,我提供了两个 .txt 文件,一个包含电子邮件地址列表,另一个包含不再出现在电子邮件列表中的成员列表。我要做的是从第二个列表中删除成员的电子邮件。此外,.txt 文件中可能会有一些令人讨厌的惊喜。我必须清理电子邮件并删除电子邮件后任何不需要的标点符号,例如分号、逗号和空格。此外,我需要将所有文本小写。我在解决这个问题的方式不止一种(我不完全确定如何让我的文件在输出中写入我需要的内容),但现在我主要关心的是以正确的顺序输出取消订阅消息。排序似乎不起作用。
以下是一些测试用例:
原始邮件列表
不喜欢的人:
之后应该是什么样子:
我的文件输出:
因此,Amro 提供了一个解决方案,尽管它比我现在所知道的要高一点。我现在的主要问题是,当我输出退订消息时,我需要它与原始电子邮件列表的顺序相同。例如,当 Bowser 在 Luigi 之前在投诉名单上时,在取消订阅消息中,Luigi 需要在他之前出现。
这是我的原始代码:
matlab - 使用 MATLAB 进行库存补货(低级 I/O)
又是 I/O 让我感到困惑的时候。在这种情况下,我的目标是编写一个函数,该函数接收一个 .txt 库存项目文件和另一个 .txt 价格文件,并输出补货的总成本,以及一个包含原始库存的 .txt 文件数据和需要补货的物品数量。例如:
注意:标头包含在 .txt 文件中,并且总会有五件商品需要补货
我的输出文件应为:
我的输出总数应该是 271 因为
Amro 很友善地帮助我弄清楚如何拔出我需要的线条,以及如何从我拥有的东西中减去我的需要。现在我的最后一个斗争(也是我在更好地个性化问题之前需要克服的最后一个障碍)是弄清楚如何编写一个输出原始数据以及补充数据的最终数据。它必须看起来像测试用例
这很接近,但我需要它来输出进货数据,在项目名称和数字之间只有一个空格。相反,它给了我:
我也试过这个:
我需要将我的单元格转换为其他形式,但索引它(正如您在 Kill_Cell 中看到的那样)不起作用。结尾
那应该就是一切。以下是给我的笔记,以防万一:
c - 如何判断是什么“异常情况”导致 select() 对 errorfds 做出反应?
根据其手册页,select()系统调用提供对一个或多个文件描述符的三个不同方面的监控:它们是否准备好读取、准备好写入,或者是否“错误”或“异常情况”(语言不同)已经发生。其中哪一个应该被监控,是通过三个fd_set
参数指定的,分别是readfds
、writefds
和errorfds
。虽然有很多关于正确使用readfds
and的优秀文档和示例writefds
,但我几乎找不到任何有用的东西errorfds
。
无论如何,出于下面讨论的原因,我errorfds
尝试使用,并且确实发现了一些情况,其中select()
我的 runloop 中的调用响应了它的一个文件描述符上的“异常条件”。例如,连接到 PTY 的 TTY,当后者从其主控端关闭时,会引发这种情况。
但现在呢?我知道文件描述符上发生了一些“异常情况”,但是一般来说,我如何才能找出究竟是什么原因造成的呢?光看errno
肯定不会给出答案(那时它总是 0)。是否有一些ioctl
我应该注意的“神奇”?
一些进一步的背景:我的一些程序(主要用 C 编写)通过串行端口与外部硬件通信。为了测试,我还编写了一个简单的服务器,它创建了一个 PTY,它是我的其他程序可以连接到的对应 TTY,就好像它是一个串行端口一样。虽然在基本层面上,所有这些都运行良好,但目前根本没有真正实现对错误或其他异常情况的处理,这有时会导致非常讨厌的行为。这需要改变!
我特别感兴趣的一种异常情况是连接是否已断开。例如,当一个端口消失时,我们会很高兴地注意到,例如,因为用户拔出了一个 USB 到串行适配器。正确处理读取和写入错误似乎可以避免最严重的意外副作用,但我想知道是否还有更多(观察errorfds
,或者可能是其他一些信号)我应该做的事情。不幸的是,UNIX 信号处理是我完全不熟悉的。
c - 两个孩子使用 open() 和 read() 交替阅读 C 语言中的单词
我在读取两个有两个孩子的两个输入文件时遇到了问题。两个孩子应该从每个文件中交替读取一个单词,将它们发送给父级,父级将像这样输出它们:
输入1:“我真的”
输入2:“我很愚蠢”
输出:“我真的很愚蠢”
我如何使用函数打开(用于打开输入文件进行读取)和读取来做到这一点?孩子的“儿子”功能(孩子会有两个类似的功能,一个读取偶数单词,一个读取奇数单词)应该是这样的:
你能帮我解决这个问题吗?在此先感谢您的帮助。
编辑:我误读了练习,有两个不同的输入文件。
console - 在低级别,如何将字符打印到控制台
我正在研究一个简单操作系统的源代码(简单但真实,可以在 x86 计算机上实际运行的操作系统),我不确定字符发送到控制台监视器并显示在控制台监视器上的过程。
在发送字符的例程的源代码中,我看到一些内联程序集执行 I/O 操作(inb/outb)。但是,字符(ASCII 值)如何转换为位图(颜色值数组,例如黑白像素,实际上在监视器屏幕上显示字符)。我在操作系统源代码中找不到从字符到位图的任何形式的映射。在操作系统中不会发生将 ascii 值转换为像素数组的过程吗?是否有硬件设备(例如 VGA 芯片)负责此操作?哪一个?
c - 低级文件 I/O 比较字符串
我正在编写一个程序,它获取一个包含 3 行加密密码的文件,并将它们与来自 aaaa - zzzz 的所有 4 个小写字母进行比较。我遇到的唯一问题是我无法弄清楚如何逐行输入我输入的文件以及如何将其与 4 个字母的单词单独进行比较。然后它应该打印与文件中的密码相关的 3 个解密的 4 个字母单词。另外,如果有任何关于如何改进我的代码的类型,请告诉我。我是这方面的初学者,所以如果可能的话,我需要清楚的解释和例子。谢谢你。
编辑*****
主要问题在于所有功能和主要。我不想将 aaaa、aaab、aaac 等打印到屏幕上,但我想把它放在一个 char 数组中,这样我就可以使用 crypt 将每个单独的行与文件中的每一行进行比较。所以我需要关于如何将所有 456976 个组合放入一个数组、将其与每一行代码进行比较以及将解决方案打印到屏幕上的建议。
文件如下所示:
我的代码如下所示:
c - 带有 Crypt 的低级 IO
我正在尝试将从文件的每一行获取的加密字符串与 AAAA-ZZZZ 进行比较,直到找到与密码匹配的字符串。我保证用户密码为 4 个字符。我想要做的是使用 LowLevel IO 获取文件并使用每行的解密密码输出到一个新文件。我还不是最擅长 C 编程的,所以请保持温和。我需要指导如何创建从 AAAA 一直到 ZZZZ 的数组或列表,然后将每个数组或列表与文件行的解密版本进行比较。
- 如何逐行解密文件并将其保存到char []
- 如何将每一行与另一个 char [] 进行比较,直到找到密码
例如:
如果该行是 $1$6gMKIopE$I.zkP2EvrXHDmApzYoV.B。下一行是 $1$pkMKIcvE$WQfqzTNmcQr7fqsNq7K2p0。假设解密后得到的密码是 ABSZ 和 TAZE,新文件将在第一行得到 ABSZ,在第二行得到 TAZE。
这是我到目前为止所拥有的:
这是文件: