`CurrentTime` 在哪里定义的?我如何得到它?

Where's `CurrentTime` defined? How do I get it?

我正在尝试编写一个粗鲁的程序来旋转屏幕(使用 libXrandr)。在 xrandr 的源代码和手册页之外,我找不到很多关于 libXrandr 的信息。因此,我决定分析 xrandr's source code 以了解 libXrandr。

在编写初始化例程时,我遇到了 XRRSetScreenConfig,它需要一个 Timestamp 参数:

Status XRRSetScreenConfig (Display *dpy,
            XRRScreenConfiguration *config,
            Drawable draw,
            int size_index,
            Rotation rotation,
            Time timestamp);

除了最后一个 timestamp 之外,我已经弄清楚了所有参数。我环顾了 xrandr.c 函数的用途,将我指向应该传递给它的正确方向,我发现传递了一个名为 CurrentTime 的变量 (?) 来代替这个参数:

status = XRRSetScreenConfigAndRate (dpy, sc, root, (SizeID) size,
    (Rotation) (rotation | reflection),
    rate, CurrentTime);

(顺便说一下,XRRSetScreenConfigAndRateXRRSetScreenConfig 具有相同的参数,除了几个额外的参数)

我四处寻找这个变量的设置位置,但我确实找不到 任何地方 设置它的地方,甚至 defined .甚至不在 Xrandr.h 或其子包含中。

所以,我想我的问题是什么,CurrentTime是什么?它实际上只是 Unix 时间中的当前时间吗?我可以只将常规 time_t 时间戳传递给 XRRSetScreenConfig 吗?如果没有,我如何获得有效的 CurrentTime?

如有任何帮助,我们将不胜感激。

CurrentTime是在X11/X.hheader中定义的宏,随后被X11/Xlib.h包含。所以你可以在你的程序中传递 CurrentTime 而不用担心 wherehow 它是如何定义的。