在一个进程中,创建一个子线程。
主线程负责:向文件中写入数据
子线程负责:从文件中读取数据
要求使用线程的同步逻辑,保证一定在主线程向文件中写入数据成功之后,子线程才开始运行,去读取文件中的数据#include <myhead.h>int flag=0;void *run(void* arg){while(1){if(flag==1){break;}}int rfd=open("./assign.text",O_RDONLY);char buf[20]={0};//while(1){int retval=read(rfd,buf,sizeof(buf));if(retval==-1){//break;exit(1);}printf("Child thread read:%s \n",buf);//fflush(buf);// }flag=0;close(rfd);sleep(1);}int main(int argc, const char *argv[]){pthread_t id;if(pthread_create(&id,0,run,0)!=0){perror("pthread_create");return -1;}while(1){ while(1){if(flag==0){break;}}int wfd=open("./assign.text",O_WRONLY|O_CREAT|O_TRUNC,0664);printf("please enter:");char buf[128];scanf("%s",buf);while(getchar()!='\n');write(wfd,buf,128);close(wfd);flag=1;sleep(3);}pthread_join(id,0);return 0;}
运行现象