0
我写代码,其中我有三个线程从一个文件中读取行,3个三个线程写入文件。读取行时,它们存储在缓冲区内。阅读完成后将被激活。我已经去了这个,我可以让它只用一个线程阅读和一个线程写作。此刻我很迷茫。 任何帮助将是伟大的。C信号量线程读取文件
这里是我写的代码片段。
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);
}
任何帮助将是非常赞赏
什么是:'b','semaphore_down','semaphore_up','isFull','isEmpty','temp'和'temp2','file','file2'?你不是唯一一个迷失的人。 –
b是缓冲区,isFull是缓冲区满。 isEmpty,是缓冲区空的。文件是输入文件。 – spikestar
我的意思是,他们是什么类型,以及他们如何以及在哪里定义和使用?简单地说,你发布的片段太不完整,缺乏足够的上下文让任何人给你很多帮助。 –