GNU/Linux >> Linux の 問題 >  >> Linux

weak_alias 関数は何をし、どこで定義されていますか

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)));

ウィークシンボルについて:

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


次のことを行うマクロです:

弱い関数を宣言します。その関数に強いシンボル名を指定しなかった場合、それを配置した関数を呼び出します。例えば

int _foo(){ return 1;}

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

したがって、foo の実際の実装を提供していない場合、基本的に _foo を使用して 1 を返します。


Linux
  1. 構造体の変数名の前のドットは何を意味しますか?

  2. ARM システム コールのインターフェイスは何ですか? また、Linux カーネルのどこで定義されていますか?

  3. ls と l はどう違いますか?

  1. InnoDBとMyISAMの違いは何ですか?

  2. Linux で eth0 インターフェース名は何を意味しますか?

  3. ep 能力とはどういう意味ですか?

  1. Webサーバーとは何ですか?Webサーバーはどのように機能しますか?

  2. Env X =(){:;}; Command’Bashは、なぜそれが安全でないのですか?

  3. Psの出力にはどういう意味がありますか?