gpt4 book ai didi

c - PolicyKit-gnome 的以下部分是什么意思?

转载 作者:太空宇宙 更新时间:2023-11-04 01:14:32 26 4
gpt4 key购买 nike

我正在查看 PolicyKit 的源代码在 gnome 中打包,我在 ./src/polkitgnomeauthenticationdialog.c 的第 568 行遇到了一些代码,我需要一些帮助

if (g_strv_length (dialog->priv->users) > 1)

它是条件语句的一部分,用于确定在要求用户通过输入密码进行身份验证时向用户显示哪个对话框。我需要帮助的是 dialog->priv-.users 的含义。我知道它是一个以 NULL 结尾的字符串,因为它是 g_strv_lngth 操作的对象,而且我认为它与特权用户有关,但语法让我有点失望,特别是 -> 。对此行的快速解释将不胜感激。

作为引用,完整的条件语句是

label = gtk_label_new (NULL);
if (g_strv_length (dialog->priv->users) > 1)
{
gtk_label_set_markup (GTK_LABEL (label),
_("An application is attempting to perform an action that requires privileges. "
"Authentication as one of the users below is required to perform this action."));
}
else
{
if (strcmp (g_get_user_name (), dialog->priv->users[0]) == 0)
{
gtk_label_set_markup (GTK_LABEL (label),
_("An application is attempting to perform an action that requires privileges. "
"Authentication is required to perform this action."));
}
else
{
gtk_label_set_markup (GTK_LABEL (label),
_("An application is attempting to perform an action that requires privileges. "
"Authentication as the super user is required to perform this action."));
}
}

最佳答案

在 C 中,

ptr->memb

完全等同于

(*ptr).memb

展开,

dialog->priv->users

相同
(*(*dialog).priv).users

dialog 的类型为 PolkitGnomeAuthenticationDialog * 并且 dialog->priv 的类型为 PolkitGnomeAuthenticationDialogPrivate *:它们都是指向结构的指针,因此使用 ->

关于c - PolicyKit-gnome 的以下部分是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4809499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com