在某个系统调用中同步两个进程

时间:2013-03-09 23:02:44

标签: linux process system-calls

是否可以在某些系统调用中同步两个linux进程而无需修改其代码?

真实世界的示例:v4l2-ctl是一种可用于设置网络摄像头的某些控件的工具。运行它以设置一些控件后,ffmpeg用于使用相机捕捉电影。但是,仅设置一些控件并重置其他一些ffmpeg会导致v4l2-ctl进行仔细调整。

现在,无需修改和重建其中一个或两个工具即可解决此问题。如果ffmpeg可以启动,但在打开并配置/dev/video0后很可能会被暂停(很可能会发生一些ioctls),然后会调用v4l2-ctl应用设置。之后,ffmpeg将恢复并使用正确的设置开始捕获。

是否可以通过简单的方法跟踪一个操作并将其挂起?

1 个答案:

答案 0 :(得分:1)

如果您喜欢冒险并且不介意使用调试编译的ffmpeg,那么您可以想象在gdb下启动它并在打开{{1}后设置断点(或其他任何地方。无论哪种方式都需要源。)

然后你可以运行二进制文件直到它到达断点,调整/dev/video0然后告诉v4l2-ctl继续超过断点。