Intereting Posts
Обновление Ubuntu зашифрованным $ HOME Есть ли хорошие альтернативы GarageBand? Java JRE не будет установлен из-за ошибки «tar: Ошибка не восстанавливается» Форматирование 1T-накопителя ext4, сколько я должен оставить свободным, чтобы избежать проблем? Перезагрузка заставила тему выглядеть как Windows 95 или Gnome Classic Невозможно скомпилировать в разделе NTFS Как заставить Ubuntu Server 12 читать ввод с клавиатуры по строке пароля при входе в систему? "Debconf: DbDriver" config ": config.dat заблокирован другим процессом: ресурс временно недоступен" при установке пакетов Не удается установить параметр net.ipv4.neigh.default.gc_thresh1 sysctl как сбросить файл ~ / .profile по умолчанию Могу ли я откатить свой ppa (который у меня есть) на Launchpad для конкретной версии Ubuntu? Как изменить расположение по умолчанию папок содержимого боковой панели на папки в разделе, разделяемом win7 и ubuntu Может ли интерфейс Gnome2 быть построен на новом коде Gnome3? Dell Inspiron 1120 Ubuntu Light -> Рабочий стол, и теперь у меня проблемы с Wi-Fi и приостановкой Агент признал отказ подписать с помощью ключа

C, ошибка компиляции во время использования функции «usleep»

Я использую Ubuntu Linux. Когда я пытаюсь использовать функцию «usleep», я получаю информацию о «неявном объявлении функции usleep». Ниже приведен код ошибки:

muteks.c:70:4: warning: implicit declaration of function 'usleep' [-Wimplicit-function-declaration] usleep(300); ^ 

Исходный код:

 #include  #include  #include  #include  void * klientWatek (void* arg); pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static int lKf = 10; int lKl = 15; int main () { pthread_t *klientTab; int *klientTabId; int lKr = 1; int i; // pamięć dla identyfikatora wątku klientTab = (pthread_t *) malloc (lKl* sizeof (pthread_t)); klientTabId = (int *) malloc (lKl*sizeof (int)); //pamięć dla id // będącego argumentem przekazywanym do funkcji for (i=0; i<lKl; i++) klientTabId[i]=i; //przypisanie printf("\nOtwieramy pub (simple)!\n"); printf("\nLiczba wolnych kufli %d\n", lKf); for (i=0; i<lKl; i++) { pthread_create (&klientTab[i], NULL, klientWatek, &klientTabId[i]); } for (i=0; i<lKl; i++) { //wątek joinable, ręcznie zwalniamy zasoby pthread_join (klientTab[i], NULL); } printf("\nZamykamy pub!\n"); printf("\nLiczba wolnych kufli %d\n", lKf); void * klientWatek (void * argWsk)//zostanie przekazany klientTabId[i] { int mojId = * ( (int *) argWsk); int i,j; int pobranoKufel = 0; int ileMuszeWypic = 2; printf ("\nKlient %d, wchodzę do pubu\n", mojId); for (i=0; i 0) { printf("\nSprawdziłem, czy jest wolny kufel\n"); lKf--; pobranoKufel = 1; printf("\nWziąłem kufel\n"); } pthread_mutex_unlock(&mutex); } while (pobranoKufel == 0); printf("\nKlient %d, wybieram kufel\n", mojId); j=0; printf("\nKlient %d, nalewam z kranu %d\n", mojId, j); usleep(300); printf("\nKlient %d, pije\n", mojId); nanosleep((struct timespec[]){{0, 500000000L}},NULL); printf("\nKlient %d, odkladam kufel\n", mojId); if (pobranoKufel == 1) { pthread_mutex_lock(&mutex); pobranoKufel=0; lKf++; pthread_mutex_unlock(&mutex); } } printf("\nKlient %d, wychodzę z pubu\n", mojId); return (NULL); } 

Как я пытался скомпилировать программу:

 gcc -Wall -pedantic -std=gnu99 -pthread muteks.c -o przyklad 

Что мне теперь делать, чтобы скомпилировать это?

usleep() объявляется в стандартном заголовке unistd.h который вы не включили. Включите его:

 #include  

Соответствующее примечание: usleep() был удален с POSIX-2008 и рекомендует использовать nanosleep() .

 #include  

Увидеть мужчину