私はプロセスAプロセスが変数を定義していないが、共有ライブラリのextern変数として使用されている場合はどうなりますか?
可変g_test_variable定義しかし、私は、プロセスBにおける変数g_test_variableを定義しない場合
common_add.soと呼ばれる2つの工程AおよびBプロセス共有同じ共有オブジェクト・ファイルの両方を有し、 dlopen & dlsymを使用してcommon_add.soファイルを開き、g_test_variable変数を使用していないadd_double関数を呼び出すと、問題が発生しますか?
/*
* File Name : common.c
* This file packaged as part of common_add.so
*/
extern int_32 g_test_variable; //declaration
int add_int(int a, int b)
{
if(g_test_variable)
printf("somthing");
return a+b;
}
double add_double(double a, double b)
{
return a-b;
}
これは私がコメントしたコードです;-) – Bathsheba
@Bathsheba :)ごめんなさい。コードを修正しました。 –
プロセスが実行中です(実行可能なプログラムの一部)。彼らは変数を定義しません。変数はソースコードレベルでのみ存在します。 –