2011-01-26 11 views
1

私はGNOMEでPolicyKitパッケージのソースコードを探しています、と私はPolicyKit-gnomeの次の部分は何を意味していますか?

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

それは条件文の一部だと少しの助けを必要と./src/polkitgnomeauthenticationdialog.cのライン568上のいくつかのコードに遭遇しましたパスワードを入力して自分自身を認証するように求めるダイアログボックスが表示されます。私が助けが必要なのは、dialog->priv-.usersの意味です。私はそれがNULLで終了する文字列であることを知っています。それはg_strv_lngthが動作しているためです。特権ユーザーと何か関係がありますが、構文は少し具体的には->です。この行の簡単な説明は、最も高く評価されます。参考

、完全な条件文がCで

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.")); 
     } 
    } 

答えて

3

ある、

ptr->memb 

は、

dialog->priv->users 
拡大
(*ptr).memb 

に完全に等価です

(*(*dialog).priv).users 

dialogと同じであるPolkitGnomeAuthenticationDialogPrivate *を入力したPolkitGnomeAuthenticationDialog *dialog->privを入力している:彼らは、構造体、->のので、使用に両方のポインタです。

1

構造体へのポインタを間接参照するために ' - >'が使用されています。この場合、構造体のポインタを参照解除してから構造体privへの参照を解除することを意味します。 '

1

構造体へのポインタのメンバデータフィールドにアクセスするとき、通常はCで->が表示されます。私が持っている場合は、そう例えば、「ポインタとアクセス間接参照このフィールド」のための短縮表記です:

struct Data* d 
(*d).dataitem; 
d->dataitem; 

最後の2つの項目が同等です。

前記オブジェクトhereの定義を見つけることができます。

関連する問題