我的局域网中有两台设备。
第一台设备是我的桌面,安装了linux(内核版本2.6.32); 第二个 - ptp(精确时间协议)服务器。
首先,我需要为我的操作系统编写程序(C或C ++)。 它可以是用户空间程序或内核模块,它不是主要的。
必须重要的是..............
我需要在指定时间内以微秒精度在我的桌面(第一个设备)中调用函数。例如,我需要调用函数
在12:45:30void rtc_thread()
请建议我,我该怎么做?
答案 0 :(得分:0)
首先,确保两台计算机的系统时钟设置完全相同。这必须在机器重新启动后完成,因为许多平台(包括x86)仅以第二精度节省系统时间。您可以通过与时间服务器同步来实现。
接下来,使用clock_gettime(CLOCK_REALTIME)
计算出它的时间。计算您想要执行操作的时间点的差异,然后调用nanosleep()
进入睡眠状态直到该时间点。请注意,您已经有一些延迟,因为这些系统调用和计算需要自己的时间。您可能希望从睡眠持续时间中抽出一些时间来弥补这一点。