GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was macht die Weak_alias-Funktion und wo ist sie definiert?

von https://github.com/lattera/glibc/blob/master/include/libc-symbols.h

/* Define ALIASNAME as a weak alias for NAME.
   If weak aliases are not available, this defines a strong alias.  */
# define weak_alias(name, aliasname) _weak_alias (name, aliasname)
# define _weak_alias(name, aliasname) \
  extern __typeof (name) aliasname __attribute__ ((weak, alias (#name)));

Über schwaches Symbol:

https://en.wikipedia.org/wiki/Weak_symbol


Es ist ein Makro, das Folgendes tut:

Es deklariert eine schwache Funktion, wenn Sie keinen starken Symbolnamen für diese Funktion angegeben haben, wird es die Funktion aufrufen, auf die Sie es gelegt haben. zum Beispiel

int _foo(){ return 1;}

//And weak alias
int __attribute__((weak, alias("_foo"))) foo();

Wenn Sie also keine tatsächliche Implementierung für foo bereitgestellt haben, wird es im Grunde genommen _foo verwenden und 1 zurückgeben.


Linux
  1. Was bedeutet Env X=() { :;}; Command’ Bash Do und warum ist es unsicher?

  2. Der Sinn von Uniq -u und was macht es?

  3. Was macht `–frontend` in `do-release-upgrade` und wo finde ich die Liste der möglichen Werte?

  4. Wo ist die Itoa-Funktion in Linux?

  5. Was ist die Schnittstelle für ARM-Systemaufrufe und wo ist sie im Linux-Kernel definiert?

Was ist der Unterschied zwischen InnoDB und MyISAM?

Was ist der Unterschied zwischen Linux und Unix?

Was sind diese rechteckigen Zeichen und wo ist diese Notation definiert?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was bedeutet die ep-Fähigkeit?

Was ist der Unterschied zwischen unlink und rm?