Для чего переменная среды XDG_SESSION_COOKIE?

Что идет не так, так это то, что цикл while сравнивает одно и то же значение array[mid_point] на каждой итерации, таким образом, заканчивая бесконечным циклом, если условие удовлетворяется.

Бинарный поиск является рекурсивным подходом и выполняет итерации по меньшим элементам одного и того же списка с каждой итерацией, пока не будет получен индекс требуемого элемента, если он присутствует в списке. Ваш код будет работать, если вы нарежете array и вызовете binary_search рекурсивно, передавая новый список в качестве аргумента. Цикл while может быть заменен простым условием if.

Для получения дополнительной информации, проверьте эту ссылку и сравните с вашей функцией, чтобы понять разницу. :)

6
задан Altreus 10 March 2009 в 22:21
поделиться

1 ответ

Это очень интересно. Я узнал, что это - менеджер по оформлению, устанавливающий cookie. Тот может использоваться для регистрации процессов для принадлежности "сессии", которыми управляет позвонивший демон ConsoleKit. Это должно поддерживать быстрое переключение между пользователями. Моя система KDE4.2.1, по-видимому, поддерживает его также.

Считайте эту мягкую фетровую шляпу запись Wiki.

Таким образом, эта переменная среды похожа DBUS_SESSION_BUS_ADDRESS предоставлять доступ к некоторому объекту (в случае XDG_SESSION_COOKIE сессия входа в систему, управляемая ConsoleKit). Например, имея в распоряжении ту переменную среды, можно попросить у менеджера текущей сессии:

$ dbus-send --print-reply --system --type=method_call \
    --dest=org.freedesktop.ConsoleKit \
    /org/freedesktop/ConsoleKit/Manager \
    org.freedesktop.ConsoleKit.Manager.GetCurrentSession

method return sender=:1.1 -> dest=:1.34 reply_serial=2
   object path "/org/freedesktop/ConsoleKit/Session1"
$

Менеджер также поддерживает запросы для сессии, которой принадлежит некоторый процесс

$ [...].Manager.GetSessionForUnixProcess uint32:4494

method return sender=:1.1 -> dest=:1.42 reply_serial=2
   object path "/org/freedesktop/ConsoleKit/Session1"

Однако это не перечисляет или так или иначе содержит переменные, который связан с некоторыми cron задание. Однако документация dbus-launch говорит это libdbus автоматически найдет правильный адрес шины DBUS. Например, файлы хранятся в /home/js/.dbus/session-bus это содержит корректные текущие dbus адреса сессии.

6
ответ дан 17 December 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: