Cod sursa(job #2585439)

Utilizator blatulInstitutul de Arta Gastronomica blatul Data 19 martie 2020 07:55:51
Problema A+B Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
	
#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;
}