具有微秒精度的调用函数

时间:2015-03-11 14:37:53

标签: c linux time protocols precision

我的局域网中有两台设备。

第一台设备是我的桌面,安装了linux(内核版本2.6.32); 第二个 - ptp(精确时间协议)服务器。

首先,我需要为我的操作系统编写程序(C或C ++)。 它可以是用户空间程序或内核模块,它不是主要的。

必须重要的是..............

我需要在指定时间内以微秒精度在我的桌面(第一个设备)中调用函数。例如,我需要调用函数

在12:45:30

void rtc_thread()

请建议我,我该怎么做?

1 个答案:

答案 0 :(得分:0)

首先,确保两台计算机的系统时钟设置完全相同。这必须在机器重新启动后完成,因为许多平台(包括x86)仅以第二精度节省系统时间。您可以通过与时间服务器同步来实现。

接下来,使用clock_gettime(CLOCK_REALTIME)计算出它的时间。计算您想要执行操作的时间点的差异,然后调用nanosleep()进入睡眠状态直到该时间点。请注意,您已经有一些延迟,因为这些系统调用和计算需要自己的时间。您可能希望从睡眠持续时间中抽出一些时间来弥补这一点。