$< doesn't get created automatically. Just like with any other variable, you need to use the G_ADD flag to create the var if it doesn't exist. The magic will be added automatically when it's created.
As for $^X, "^X" is a convenient way of writing Ctrl-X. Yes, you can use a real Ctrl-X after the $ in the code, and in fact, that's the real variable name. You'll need to pass "\cX" (or whatever the C equivalent is) to gv_fetchpv.
As for $^X, "^X" is a convenient way of writing Ctrl-X. Yes, you can use a real Ctrl-X after the $ in the code, and in fact, that's the real variable name. You'll need to pass "\cX"c (or whatever the C equivalent is) to gv_fetchpv.
$^X is the actual name of the variable, so no, you don't need to use \cX, you can use $^X, the actual name of the variable
The question is perfectly well phrased. It showed the code he used, the result he expected and the result he got. Runnable demonstrations are always nice, but not necessary.