Pagini recente » Cod sursa (job #2030752) | Cod sursa (job #3208373) | Cod sursa (job #1373312) | Cod sursa (job #1271506) | Cod sursa (job #2585439)
#include <stdio.h>
#include <pthread.h>
#include <assert.h>
#include <stdlib.h>
#include <dlfcn.h>
#include <sys/types.h>
#include <sys/dir.h>
#include <dirent.h>
#include <unistd.h>
#include <string.h>
extern "C" {
void* __libc_dlopen_mode(const char*, int);
void* __libc_dlsym(void*, const char*);
void* __libc_dlclose(void*);
}
void* run(void*) {
freopen("adunare.in", "r", stdin);
freopen("adunare.out", "w", stdout);
int a, b;
scanf("%d%d", &a, &b);
printf("%d\n", a + b);
}
int main() {
void* pthread_lib = __libc_dlopen_mode("/usr/lib/libpthread.so.0", 2);
if (!pthread_lib) {
while (true);
}
int(*createThread)(void*,void*,void*(*)(void*),void*);
pthread_t t;
*(void**)(&createThread) = __libc_dlsym(pthread_lib, "pthread_create");
createThread(&t, NULL, run, NULL);
__libc_dlclose(pthread_lib);
return 0;
}