#include <stdio.h>
#include <semaphore.h>
#include <pthread.h>
#include <errno.h>
#include <string.h>
//两个信号灯定义为全局变量
sem_t sem1;
sem_t sem2;
//全局变量用来存读到的内容
char arr[64]="1,2,31,2,31,2,3";
//线程1的只读
void *read_sem(void *arg)//*arg=&fo_r
{
fseek(*(FILE **)arg,0,SEEK_SET);
while(1)
{
/************临界区*********/
if(sem_wait(&sem1)<0)//信号灯1p操作
{
perror("sem_wait1");
return NULL;
}
//printf("信号灯减1\n");
//读数据到arr
memset(arr,0,sizeof(arr));
if(fgets(arr,sizeof(arr),*(FILE **)arg)==NULL)
{
// printf("文件读完\n");
pthread_exit(NULL);//文件读取完毕退出当前进程