忽然发现最基础的都忘了:函数外可以做什么事情?
seai 2012-09-04 11:03:55 /*linux c main.c*/
#include <stdio.h>
/*
这里可以做什么事?可以写任何代码?那它们在何时执行?
printf("试试看!\n");
如果这是一个.so共享库呢,在共享库中,函数外也可以写任何代码?那它们在何时执行?
/*
int main(void)
{
printf("随便玩的!\n");
}
问题是由一个在多线程环境中被调用的so共享库引出的:
因为要在多线程环境中使用,为了保证其中的函数线程安全,我使用到了pthread_mutex_t、pthread_key_t,但pthread_mutex_t和pthread_key_t本应该在主线程中一次初始化的,我不确定在函数外这样写,是否正确。。。。。。
/*myfuns.c*/
static pthread_key_t key;
pthread_key_create (&key, NULL);//pthread_key_delete(key);又该写在哪呢?
/*其他全局变量*/
/*my_fun被线程调用*/
void my_fun(){
/*这里访问了全局变量*/
}