问题标签 [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.

0 投票
2 回答
2323 浏览

c - 如何将 ioctl 与 FS_IOC_FIEMAP 一起使用

我的问题是处理稀疏文件读取并了解文件的范围在哪里围绕它执行一些逻辑。

由于没有直接的 API 调用来解决这些问题,我决定使用 ioctl api 来执行此操作。我从 cp 命令如何通过查看他们的代码来处理复制稀疏文件的问题得到了这个想法,并最终看到了这一点。

https://github.com/coreutils/coreutils/blob/df88fce71651afb2c3456967a142db0ae4bf9906/src/extent-scan.c#L112

因此,我尝试在用户空间中运行的示例程序中执行相同的操作,但出现“无效参数”错误。我不确定我错过了什么,或者这是否可能来自用户空间。我在 ext4 文件系统上的 ubuntu 14.04 上运行。这可能是设备驱动程序在下面支持这些请求模式的问题吗?

0 投票
0 回答
66 浏览

assembly - 基于用户输入执行的服务调用

我刚刚编写了我的第一个 MIPS 加法程序。我的输出是预期的($t0 + $t1 = $t2),但我对一些我认为应该可以避免的奇怪行为有疑问。

在我收集用户输入(li $v0, 5)的行上, $v0 服务调用的值被设置为我的用户输入的值。例如,如果我输入“10”作为用户输入,$v0 被赋值为 10,这是终止程序的服务代码。

我可以做些什么来确保我的用户输入不会影响 $v0 注册表上的服务调用? 旁注:我的大会术语在这里正确吗?

提前感谢您的帮助。

0 投票
1 回答
246 浏览

android - 无法从 /dev/input/event1 获取触摸屏键盘的按键事件

我无法从 /dev/input/event1 获取关键事件。我能够从其输出中过滤掉的是来自事件代码 53 和 54 的绝对 X 和 Y 触摸坐标。我很困惑为什么在我的软键盘上键入时没有事件代码 1 的输出。我想知道哪个关键用户按下了,压力有多大。希望你能理解我的问题。

我在植根三星 Galaxy S4。

0 投票
3 回答
2546 浏览

c - C - 赫兹到秒以及如何获得适当的延迟时间?

我正在玩 PIC 24,目前我在将赫兹转换为秒然后将其用作发送到压电片(蜂鸣器、缩放器、扬声器等)的信号延迟时遇到了一点问题,我想使其播放某些音符。

我想知道我是否正在从赫兹转换为秒(在提供的代码中为毫秒),以及我是否正确地进行了信号处理。

这是我遇到麻烦的代码:

我的赫兹到 int 的转换:

这是我将信号发送到我正在使用的 pic24 的方式:

这是我定义注释的方式:

0 投票
2 回答
1311 浏览

c - 低级 DBus C API 主循环

当尝试使用回调函数进行 DBus 回复时,我陷入了创建良好/运行良好的主循环的困境。

我想做的很简单,进行 DBus 调用并指定一个在回复到来时应该调用的函数。这是因为在计算并到达回复之前,我不想一直阻塞我的线程。

我首先使用 dbus_connection_send_with_reply(..) 获取 DBusPendingCall,然后使用 dbus_pending_call_set_notify(..) 指定回调函数。在此之前,当连接到总线时,我已经启动了另一个线程,它应该等待响应并调用回调函数。我根本没有找到任何例子,也没有很好的文档来说明我应该如何设计这样的 dbus 主循环。我努力了:

我的问题是两件事:

  • 我尝试通过将 dbus->status 标志设置为 MY_DBUS_STATUS_STOPPING 并等待线程加入来停止应用程序。如果线程在 dbus_connection_read_write_dispatch(..) 函数中被阻塞,这将不起作用。如果我希望应用程序快速停止,那么我需要指定一个非常短的超时时间。我不能以其他方式唤醒阻塞的线程吗?

  • 更严重的是,使用这段代码,我不会从我调用的方法中得到任何回调。如果我添加一些 fprintf(..) 来写入标准输出,我可能会突然收到我的回调。这似乎很随机,所以也许是某种僵局?我尝试在发送消息和使用 _set_notify(..) 函数添加回调之间使用 dbus_connection_flush(..) 。没有任何区别......但是在同一个地方打印一些字母到标准输出可以解决问题。在 dbus-main-loop 中打印到标准输出,插入一个空的“;” 有时似乎可以解决问题...

那么任何有使用低级dbus api和异步方法的例子的人,即不使用_block(..)?

0 投票
2 回答
2987 浏览

c++ - 你如何“刷新” write() 系统调用?

我从用户那里获取输入,然后使用 read() 和 write() 系统调用将其打印到标准输出。出于某种原因,除了常规输出之外,它还会打印一些额外的字符。附加字符来自用户输入,因此它们不是随机的。但是,我假设这可能是由于缓冲区未清除以接收新输入的事实。我搜索了许多适合这种情况的不同事物,但我仍然感到困惑。我只为此使用低级 I/O,因此不会实现 C 标准库。我问过的大多数人都说使用“fflush”,但我认为这仅适用于我不会使用的 stdio.h 库。提前感谢您提供有关此事的任何建议或资源。

0 投票
1 回答
150 浏览

c++ - 为什么这个程序只打印第一行?

有人可以解释为什么下面的代码只打印出第一行而不是前 3 行吗?我在一张纸上手动完成了 for 循环,我认为它会增加 3 行,但我的逻辑必须在某个地方关闭。

0 投票
1 回答
502 浏览

python - 使用 Python 套接字的 RFID(低级命令)

SAAT-520Wireless-Communication-Programming-Development-Protocol我一直在尝试向我的 RFID 发送低级命令以获取设备信息。我正在使用wireshark点击连接,它看起来很好,因为数据包似乎从我的PC到RFID设备,反之亦然。

但是我在我的程序上看不到任何响应或输出。在设备说明上我有响应命令,我不确定我应该和/或在哪里可以使用命令响应。

我不明白为什么我的程序没有响应。没有错误,程序也没有成功。只是过程永无止境。

另请参阅附件中的命令说明。

系统信息查询命令(0x01H)

图像1

命令响应

img2

0 投票
0 回答
157 浏览

linux - MacOS 的 iopl()/ioperm()

iopl() 在 Linux 上的功能是否有等效功能?我不需要只使用 iopl,还需要使用其他相关函数,如 outb() 和 inb()。另一个问题,在 Linux 上是否有像 sys/io.h 这样的 MacOS 等效库?

0 投票
3 回答
1814 浏览

linux - golang 将结构写为原始数据

我正在使用 GO 开发一种新型数据库。我想做的一件事是拥有一个分布式磁盘,这样我就可以在多台机器上分发查询(想想 Pi 类型的架构)。这意味着在原始磁盘上构建我自己的结构。

我的挑战是我找不到可以让我从指向结构的指针写入 N 个字节的 GO 包。所有的 IO 包都限制了对 []byte 切片的访问。

这对保护很好,但是如果我必须通过某种形式的编码通过字节数组缓冲所有内容,它将减慢对特定对象的访问速度。

有人对如何进行原始 IO 有任何想法吗?还是我将不得不将 GOB 作为我的 IO 单元来处理并遭受编码/解码的惩罚?