/* compile with gcc test.c -o test -ldl */ #include #include #include #include int main (int argc, char **argv) { pthread_mutex_t mutex; unsigned char *p; memset(&mutex, 0xab, sizeof(mutex)); printf("mutex before first init: '"); for (p = (unsigned char *)&mutex; p - ((unsigned char *) &mutex) != sizeof(mutex); p++) printf("%.2x", ((unsigned int) *p)); printf("'\n"); pthread_mutex_init(&mutex, NULL); printf("mutex after first init: '"); for (p = (unsigned char *)&mutex; p - ((unsigned char *) &mutex) != sizeof(mutex); p++) printf("%.2x", ((unsigned int) *p)); printf("'\n"); dlopen("libgnomevfs-2.so", RTLD_NOW); printf("mutex before second init: '"); for (p = (unsigned char *)&mutex; p - ((unsigned char *) &mutex) != sizeof(mutex); p++) printf("%.2x", ((unsigned int) *p)); printf("'\n"); pthread_mutex_init(&mutex, NULL); printf("mutex after second init: '"); for (p = (unsigned char *)&mutex; p - ((unsigned char *) &mutex) != sizeof(mutex); p++) printf("%.2x", ((unsigned int) *p)); printf("'\n"); return 0; }