思维导图
作业
在一个进程中,创建一个子线程。 主线程负责:向文件中写入数据 子线程负责:从文件中读取数据 要求使用线程的同步逻辑,保证一定在主线程向文件中写入数据成功之后,子线程才开始运行,去读取文件中的数据
void waite_file(){//向文件写入数据
FILE* fd = fopen("./作业.txt","w");
if(fd == 0){
perror("文件错误");
return ;
}
fprintf(fd,"hello");
fclose(fd);
}
void* read_file(void* arg){//读取文件数据
FILE* fd = fopen("./作业.txt","r");
if(fd == 0){
perror("文件错误");
pthread_exit(NULL);
}
char buf[1024] = {0};
if(fgets(buf,sizeof(buf),fd) != NULL){
printf("读取到的数据:%s",buf);
}
fclose(fd);
pthread_exit(NULL);
}
int main(int argc, const char *argv[])
{
pthread_t id;
waite_file();
if(pthread_create(&id,0,read_file,0) != 0)
{
perror("pthread_create");
return 1;
}
void* retval;
pthread_join(id,&retval);
return 0;
}