2013-08-04 40 views
0

ldap_parse_reference的文檔說,通過調用ldap_value_free來釋放引用(請參閱手冊頁的http://linux.die.net/man/3/ldap_parse_reference)。但是,不推薦使用例程ldap_value_free。從ldap_parse_reference調用中釋放內存的正確方法是什麼?

任何指向正確的方法來做到這一點? (請注意,我查看了openldap代碼,發現一些代碼使用了ber_memvfree,但這對我來說並不合適,我不喜歡這些調用的混合,並且文檔沒有說明要這麼做那樣)。

謝謝。

回答

0

我去看了看openLDAP代碼。在文件clients/tools/ldapsearch.c中,例程print_reference會調用ldap_parse_reference。通過調用ber_memvfree((void **)refs)將結果引用釋放(打印後)。

我只能假設這是釋放內存的正確方法。

0

ldap_value_free(),正如您引用的手冊頁所述。 man page for ldap_value_free()在哪裏說它已被棄用?

+0

它在來源中已被廢除(參見:http://www.openldap.org/devel/gitweb.cgi?p=openldap.git;a=blob;f=include/ldap.h;h=673dcc3e5d823603701d6fc806a5cd7bac9ba035;hb = HEAD#l1835)。它引用'ldap_value_free_len()'函數作爲替代。 – Ben

+0

@Ben它肯定不會在它自己的手冊頁或者ldap_parse_reference()中被棄用。 – EJP

+0

Ben的鏈接清楚地表明原型僅在定義了LDAP_DEPRECATED且非零時可用。 –

相關問題