Проблема состоит в следующем:
Есть массив char *а;
Есть функция zapol_arr которя заполняет массив а
zapol_arr()
{
a = (char *)malloc(100);
int i = 0;
while(1)
{
a[i] = что то туда пихаем;
i++;
if (i == 101)
{
Здесь требуется копию а передать функции obrab_arr на обработку
i = 0;
free(a);
}
}
}
void obrab_arr(char *str)
{
Делаем что то с str
}
obrab_arr - в любом случе завершает свою работу.
Вопрос в следующем: счетчик может стать равным 101 когда обработка массива еще не закончена, следовательно нужно запустить obrab_arr паралельно с той obrab_arr которя уже запущена и т.д.. Предполагаю что это можно реализовать с помощью тредов, а как не знаю. Испоьзование семафоров, мьютексов и т.д. не желательно потому что я хочу что бы массив одновременно заполнялся и обрабатывался уже заполненный массив. Может кто нибудь подскажет как это можно реализовать.
Спасибо.