我有2過程A和稱爲B.兩個進程共享相同的共享對象文件common_add.so如果我的進程沒有定義一個變量,但是它被用作共享庫中的一個外部變量,會發生什麼?
我定義在處理A的可變g_test_variable
但是,如果我不限定於處理B的可變g_test_variable和使用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 :)。抱歉。修改了代碼。 –
進程正在運行(某些可執行程序)。他們沒有定義變量。變量僅在源代碼級別存在。 –