【问题标题】:How to use a variable in an LDAP command in C?如何在 C 中的 LDAP 命令中使用变量?
【发布时间】:2011-07-31 03:38:45
【问题描述】:

我想在 C 中的 ldap 命令 ldap_search_s 中使用一个变量。我使用 strcat 创建了我需要的字符串。错误是“错误的搜索过滤器”。我很确定这与我创建的字符串有关。这是我的代码:

char *numero = randomID1() ;
 char *var1="\"(studentID=";
 char *var2= numero;
 char *var3= ")\" ";
char var4[80];


 strcpy (var4,var1);
  strcat (var4, var2);
  strcat (var4,var3);
char *attr[] = { "cn","sn","studentID", NULL };



ldap_search_s( ld, "dc=******,dc=fr",
               LDAP_SCOPE_SUBTREE, var4, attr , 0 , &res )

【问题讨论】:

    标签: c ldap openldap


    【解决方案1】:

    我没有尝试过,但是在查看文档后,我怀疑您不应该在过滤器中包含双引号:

    char *var1="(studentID=";
    char *var2= numero;
    char *var3= ")";
    

    【讨论】:

    • 使用s(n)printfIMO 会更好看。
    • @Mat:我同意。不过,我的回答在试图严格按照要求回答问题与试图指出其他潜在问题(例如,更简洁的代码、可能的缓冲区溢出等)之间犹豫不决。
    • @Dyaz:酷。真高兴你做到了。如果是“解决方案”,您可以单击答案旁边的复选标记以接受它作为解决方案,但这是您的选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2022-01-08
    • 2015-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多