Я пишу код, в котором у меня есть три потока, которые читают строки из файла, и 3 три потока, которые пишут в файл.Когда строки читаются, они хранятся в буфере.после завершения чтения будет активирован.Я попробовал это, и я могу заставить его работать только с одним потоком для чтения и одним для потока для записи.На данный момент я довольно потерян.Любая помощь была бы отличной.
Вот фрагменты кода, который я написал.
void *read_file(void *arg)
{
semaphore_down(&sem_write);
while(fgets(temp, MAX_BUFFER, file) != NULL)
{
if(!isFull(&b))
{
printf("ADDING\n");
read(&b,temp);
}
}
semaphore_up(&sem_read);
}
void *write_file(void *arg)
{
semaphore_down(&sem_read);
while(!isEmpty(&b))
{
write(&b,&temp2);
fprintf(file2, "%s", temp2);
}
semaphore_up(&sem_write);
}
Любая помощь будет очень цениться