多线程程序中文件套接字描述符关闭两次bug的影响

问题描述

fd = open("file",O_RDONLY);
if (fd < 0) exit(1);

while((res = read(fd,buf,sizeof(buf)))){
if (res < 0){
close(fd);
fprintf(stderr,"Read error!\n");
break;
} else {
printf("Read %zd bytes\n",res);
}
}
close (fd);

在单线程程序中,这是一个明显的错误:'fd' 被关闭了两次。这个错误在多线程程序中会产生什么影响?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)