Прошу прощения, мои темы здесь уже напоминают флуд, но у меня новый вопрос, причем не знаю куда мне его на этом форуме адресовать, ведь вопрос по программированию в Linux. Прошу прощения у администрации, если что не так.
Суть вопроса такова: Надо поменять приоритет потоков, выводящих на экран буквы (один выводит А, другой - B). После вывода буквы каждый поток засыпает на секунду. Таким образом, буквы появляются равномерно с интервалом в секунду - то есть ABABABABABA.... Затем надо поменять приоритеты и посмотреть как равномерный вывод будет нарушаться.
Я бы не задавал вопрос, если бы так и не нашел способ, позволяющий поменять приоритет процесса при помощи linapi.
Код у меня такой:
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
#include <pthread.h>
void * thread_func_A(void *arg)
{
int i;
//int loc_id = * (int *) arg;
for (i = 0; i < 10; i++)
{
printf("A");
sleep(1);
}
}
void * thread_func_B(void *arg)
{
int i;
//int loc_id = * (int *) arg;
for (i = 0; i < 10; i++)
{
printf("B");
sleep(1);
}
}
int main(int argc, char * argv[])
{
int id1, id2, result;
pthread_t thread1, thread2;
id1 = 1;
result = pthread_create(&thread1, NULL, thread_func_A, &id1);
if (result != 0)
{
perror("Creating the first thread");
return EXIT_FAILURE;
}
id2 = 2;
result = pthread_create(&thread2, NULL, thread_func_B, &id2);
if (result != 0)
{
perror("Creating the second thread");
return EXIT_FAILURE;
}
result = pthread_join(thread1, NULL);
if (result != 0)
{
perror("Joining the first thread");
return EXIT_FAILURE;
}
result = pthread_join(thread2, NULL);
if (result != 0)
{
perror("Joining the second thread");
return EXIT_FAILURE;
}
printf("\nDone\n");
return EXIT_SUCCESS;
}
Всё есть - не хватает функций для смены приоритета. ну не найду я их. Может кому-то не составит труда подсказать?