Более того, выполните Objectfile, функцию & quot; sleep () & quot; не работает?

Во-первых, я расширил klee для поддержки нескольких потоков и реализовал некоторые функции pthread.h в klee.
Теперь я использую llvm-gcc для компиляции исходного файла c test.c, генерирую Objectfile test.o, затем использую klee test.o выполнить .o файл. Функция printf может печатать строки на экране, но функция sleep() не работает, программа выполняется очень быстро, не останавливается. Веб-сайт кли говорит, что я могу использовать uclibc для связи с библиотекой, но когда я добавляю аргумент --libc=uclibc, лайк klee --libc=uclibc test.oрезультат неправильный и странный, точно так же, как klee не выполняет test.o, вместо этого выполняет klee сам !!! Как я могу заставить функцию sleep () работать?

C источник следовать

    #define OS_GLOBALS
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
//#include "record_monitor.h"
int num;
int global;void * fun1(void *arg)
{
printf("1fun1 num = %d\n",num);

printf("fun1 gol = %d\n",global);

num = 8;

printf("2fun1 num = %d\n",num);

sleep(10);

printf("over fun1\n");

return 0;
}

void *fun2(void *arg)
{
printf("1fun2 num =%d\n",num);

global++;

num = 5;

printf("2fun2 glo = %d\n",global);

sleep(6);

printf("over fun2\n");

return 0;
}

int main()
{
pthread_t npid1,npid2;

num = 1;pthread_create(&npid1,NULL,fun1,NULL);

pthread_create(&npid2,NULL,fun2,NULL);

sleep(5);
printf("1main num = %d\n",num);global = 7;num++;

printf("2main num = %d\n",num);

pthread_join(npid1,NULL);
pthread_join(npid2,NULL);

return 0;
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]