小编il_*_*mix的帖子

从另一个进程访问mmap内存

我开始玩mmap了.我正在尝试创建一个示例工作区,然后将其扩展到实际案例.

这就是我想要实现的目标:

过程1:

  • mmap一个文件(实际上是一个设备,但可以用文本文件生成一个例子)

流程2 :(不是从流程1中获取;只是一个独立的流程)

  • 读取进程1映射的内存
  • 改变一些比特
  • 将其写入新文件

我已经阅读了几个示例和文档,但我仍然没有找到如何实现这一点.我缺少的是:

  • 进程2如何在不知道打开文件的情况下访问进程1映射的内存?
  • 如何将mmap内容放在新文件中?我想我必须ftruncate一个新文件,mmap这个文件并memcpy进程1内存映射的内容到进程2内存映射(然后是msync)

侧面信息,我在两个进程之间打开了一个消息队列,因此如果需要,它们可以共享一些消息(例如内存地址/大小,......).

任何提示?

提前致谢!

混合

c++ ipc mmap

5
推荐指数
1
解决办法
1491
查看次数

获取 Mercurial 下一次提交哈希值

我的版本是 56,哈希值 6af16aa3edf8。下一个修订版将是 57,带有哈希值 ???。有没有办法知道修订版 57 的哈希值?我需要它在预提交挂钩中。

为什么?

我开发了一个脚本,通过预提交挂钩调用,用于更新一些版本文件。这样,编译后的可执行文件可以提供有关其构建版本的所有信息。我在版本文件中添加当前提交的修订号,只需使用“父修订号 + 1”检索即可。由于与同一存储库上的其他人协作时修订号不可靠,因此我也更喜欢添加哈希值。不知道怎么找回...

mercurial

3
推荐指数
1
解决办法
925
查看次数

使用Ctrl-C终止程序而不终止父脚本

我有一个bash脚本启动外部程序(evtest)两次.

#!/bin/bash

echo "Test buttons on keyboard 1"
evtest /dev/input/event1

echo "Test buttons on keyboard 2"
evtest /dev/input/event2
Run Code Online (Sandbox Code Playgroud)

据我所知,evtest只能通过Ctrl-C终止.问题是这也终止了父脚本.这样,对evtest的第二次调用永远不会发生.

如何关闭第一个evtest而不关闭脚本,以便第二个evtest实际运行?

谢谢!

PS:对于想要问"为什么不evtest手动运行而不是使用脚本?"的人来说,答案是这个脚本包含进一步的半自动硬件调试测试,因此启动脚本并执行所有操作更方便需要运行更多命令.

bash

2
推荐指数
1
解决办法
479
查看次数

标签 统计

bash ×1

c++ ×1

ipc ×1

mercurial ×1

mmap ×1